Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
VBA-Problem - Duplikatsuche: Formular zum ersten Datensatz
zurück: Formular lässt sich nicht maximieren weiter: Die Sache mit der Null Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Bitte Status wählen ! Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Frank vhet
VBA-Neuling, arbeitet mit AXP, Excel & PP


Verfasst am:
14. März 2005, 11:18
Rufname:
Wohnort: Bremen

VBA-Problem - Duplikatsuche: Formular zum ersten Datensatz - VBA-Problem - Duplikatsuche: Formular zum ersten Datensatz

Nach oben
       

Hallo Leute,

Access2000, vgl. auch Beitrag "Duplikatanzeige in Formularen"

Nach Eingabe von Daten in ein Formular wird geprüft, ob die eingegebenen Daten einem bereits vorhandenen Eintrag entsprechen. Verglichen werden die Felder Name und Geburtsdatum. Nach Eintrag des Geburtsdatums in das Formular läuft über LostFocus() eine Ereignisprozedur mit folgendem Inhalt:
Code:
Private Sub Geburtsdatum_LostFocus() 'Duplikate erkennen'
    Dim rsGebDat As DAO.Recordset
    Dim strKrit As String

    strKrit = "[Geburtsdatum] = #" & _
              Format(Me!Geburtsdatum, "mm\/dd\/yyyy") & _
              "# AND [Name] = '" & Me![Name] & "'"
    Set rsGebDat = Me.RecordsetClone
    rsGebDat.FindFirst strKrit
    If rsGebDat.NoMatch Then
        MsgBox "Ersteintrag"
        Me!Mehrfachbew = ""
      Else
        MsgBox "Bewerber bereits in der Datenbank"
        Me!Mehrfachbew = "Mehrfachbewerbung"
        Exit Sub
    End If
    Me.Bookmark = rsGebDat.Bookmark
End Sub

Nach Eingabe des Geburtsdatums öffnet sich zwar die Messagebox ("Ersteintrag" bzw. "Bewerber bereits in der Datenbank"), aber das Formular springt dann plötzlich zum ersten Datensatz. Bevor ich weitere Daten des aktuellen Datensatzes eingeben kann, muss ich diesen erst wieder auswählen.

Ich möchte, die Daten des aktuellen Datensatzes komplett eingegeben können, ohne zwischen den Datensätzen hin und her springen zu müssen. Was soll ich machen? Was soll ich an diesem Code ändern?

Zusatzfrage: Wie kann ich erreichen, dass bei einem Fehler in der Prozedur keine Fehlermeldung erscheint (bspw. wenn kein Geburtsdatum eingetragen wurde), sondern die Prozedur einfach abgebrochen wird.

Danke im Voraus... Frank
lothi
c#, .Net


Verfasst am:
28. Apr 2005, 09:30
Rufname:
Wohnort: Birgisch


AW: VBA-Problem - Duplikatsuche: Formular zum ersten Datensa - AW: VBA-Problem - Duplikatsuche: Formular zum ersten Datensa

Nach oben
       

Hallo

Da gibt es ein Problem. Wenn du keine DS Findest kannst du auch kein Boomark auf den nicht vorhanden DS setzen. Wenn er nichts findest solltest du auf einen neuen DS springen.

Zum überpfrüfen eignet sich besser BevorUptate so kannst du wenn ein Wert doppelt ist drauf reagieren.

Beispiel Code:
Code:
Private Sub Geburtsdatum_BevorUpdate(Cancel As Integer) 'Duplikate erkennen'
    Dim rsGebDat As DAO.Recordset
    Dim strKrit As String

    strKrit = "[Geburtsdatum] = #" & _
              Format(Me!Geburtsdatum, "mm\/dd\/yyyy") & _
              "# AND [Name] = '" & Me![Name] & "'"
    Set rsGebDat = Me.RecordsetClone
    rsGebDat.FindFirst strKrit
    If Not rsGebDat.NoMatch Then
        MsgBox "Bewerber bereits in der Datenbank"
        Me!Mehrfachbew = "Mehrfachbewerbung"
      Else
        Me!Mehrfachbew = ""       
    End If
End Sub

Für Fehlerbehandlung Fehlerbehandlung

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP
Guybrush junior
Access-Fan o.A.


Verfasst am:
01. Mai 2005, 20:52
Rufname:

AW: VBA-Problem - Duplikatsuche: Formular zum ersten Datensa - AW: VBA-Problem - Duplikatsuche: Formular zum ersten Datensa

Nach oben
       

Hallo Lothi,

ich brauche so ne ähnliche Abfrage. Wenn ich einen neuen Bericht anlege und bei Terminvereinbarung Tag ein Datum eingegeben habe, soll ein Hinweis erscheinen, wenn für diesen Tag schon ein Termin vereinbart wurde.
Leider schaffe ich es nicht, den Code so abzuändern, dass er bei mir passt.
Allerdings soll da wirklich nur ein Hinweis erscheinen, da es durchaus möglich ist, dass zwei Termine an einem Tag vereinbart werden können.

Das Datum wird als Datum,kurz in der Tabelle gespeichert.

Wenn du so nett wärst.........

_________________
Wenn isch immer des mache ded was die onern wolle, kennt isch moin Kopp in die Rachkammer hänge. (Offizieller Sponsor der Bundesrepublik Deutschland)
lothi
c#, .Net


Verfasst am:
02. Mai 2005, 08:06
Rufname:
Wohnort: Birgisch

AW: VBA-Problem - Duplikatsuche: Formular zum ersten Datensa - AW: VBA-Problem - Duplikatsuche: Formular zum ersten Datensa

Nach oben
       

Hallo

Ich weiss nicht genau wann du das machen willst, aber für deinen Fall
gibt es eine einfachere Lösung:
Code:
    If DLookup("Datumsfeld", "Tabellenname", _
               "DatumsFeld=#" & Format(Me!frmDatum, "mm\/dd\/yyyy") & "#") Then
        MsgBox "Datum ist schon reserviert!"
    End If

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP
Guybrush junior
Access-Fan o.A.


Verfasst am:
05. Mai 2005, 08:51
Rufname:

des find ich gut ! - des find ich gut !

Nach oben
       

Hallo lothi,

DANKE ! das geht wunderbar.

Jetzt muss ich mal ein allgemeines Lob loswerden.

Meine Datenbank ist jetzt schon viel komfortabler. Damit vereinfacht sich der Verwaltungsaufwand (Beruflich) für mich enorm.
Das ging/geht nur, weil ich hier so kompetente Hilfestellungen bekomme. Und ich selber lerne ja auch bei jedem Code, der mir vorgeschlagen wird, dazu.
Je mehr man sich damit beschäftigt, umso mehr Ideen bekommt man. Meine Einschätzung: Die Datenbank lässt sich immer wieder verbessern. Ich denke, dass ich bis Herbst auf „85% Optimiert“ bin. Natürlich mit Eurer Hilfe.
Einen herzlichen Gruß an alle, die sich Zeit nehmen, um solchen Newbies wie mir weiterzuhelfen.

Ups ! Wenn man kein Datum eingibt, bzw. das eingegebene Datum löscht, kommt eine unschöne Fehlermeldung. Die kann man doch bestimmt mit einer: >> If Datum = "" then end << abfangen. Leider weiss ich nicht, wie man 00:00:00 richtig als Code in eine if then Abfrage einsetzt. Crying or Very sad

_________________
Wenn isch immer des mache ded was die onern wolle, kennt isch moin Kopp in die Rachkammer hänge. (Offizieller Sponsor der Bundesrepublik Deutschland)
lothi
c#, .Net


Verfasst am:
09. Mai 2005, 19:41
Rufname:
Wohnort: Birgisch

AW: VBA-Problem - Duplikatsuche: Formular zum ersten Datensa - AW: VBA-Problem - Duplikatsuche: Formular zum ersten Datensa

Nach oben
       

Hallo

Probier mal so:
Code:
    If Nz(DLookup("Datumsfeld", "Tabellenname", "DatumsFeld=#" & _
                  Format(Me!frmDatum, "mm\/dd\/yyyy") & "#"), 0) Then
        MsgBox "Datum ist schon reserviert!"
      Else
        MsgBox "Nichts gefunden!"
    End If

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP
Guybrush junior
Access-Fan o.A.


Verfasst am:
09. Mai 2005, 21:25
Rufname:

Problem schon vorher - Problem schon vorher

Nach oben
       

Hallo,

Dein erst genannter Code funktioniert doch schon. Dass Problem ist: wenn ein Termin abgesagt wurde, lösche ich ihn natürlich wieder. Dabei kommt dann eben ne Fehlermeldung. In der If-Abfrage (Dlookup) kommt Access nicht damit klar, dass nix im Feld Datum steht.
Fehlermeldung: Datum =##
Wenn man vorher abfragt, ob das Feld leer ist, kann man diese umgehen. Ne einfache If Datum = "" then end geht aber net.

_________________
Wenn isch immer des mache ded was die onern wolle, kennt isch moin Kopp in die Rachkammer hänge. (Offizieller Sponsor der Bundesrepublik Deutschland)
lothi
c#, .Net


Verfasst am:
10. Mai 2005, 00:25
Rufname:
Wohnort: Birgisch


AW: VBA-Problem - Duplikatsuche: Formular zum ersten Datensa - AW: VBA-Problem - Duplikatsuche: Formular zum ersten Datensa

Nach oben
       

Hallo

Wenn DLookUP nichts findet gibt die Funktion NULL zurück.

mit NZ(DLookup(...),0) wird NULL in 0 umgewandelt was in deinem Fall Falsch bedeutet.
Noch einen guten Rat nenne das Feld nicht Datum sondern datDatum oder so. Datum ist ein reserviertes Wort in Access.

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Formeln vom Formular, werden in der Abfrage nicht angezeigt 4 maddes 895 23. Nov 2004, 12:38
Skogafoss Formeln vom Formular, werden in der Abfrage nicht angezeigt
Keine neuen Beiträge Access Tabellen & Abfragen: Add Record - Formular in ein Nebenformular 6 User007 926 27. Okt 2004, 11:49
Gast Add Record - Formular in ein Nebenformular
Keine neuen Beiträge Access Tabellen & Abfragen: Wert eines Feldes aus Formular in Tabelle speichern 18 kave78 13710 16. Okt 2004, 13:40
Ming Wert eines Feldes aus Formular in Tabelle speichern
Keine neuen Beiträge Access Tabellen & Abfragen: Standardwert in Formular aus einer Abfrage? 3 Gast 1777 04. Okt 2004, 12:53
Pfobeman Standardwert in Formular aus einer Abfrage?
Keine neuen Beiträge Access Tabellen & Abfragen: duplikatsuche 3 sandi15 2598 08. Sep 2004, 15:07
Skogafoss duplikatsuche
Keine neuen Beiträge Access Tabellen & Abfragen: Kriterien aus nem Formular die mich fertig machen!!! 19 Martin von der Bergwiese 2658 24. Aug 2004, 12:53
Lorenz Kriterien aus nem Formular die mich fertig machen!!!
Keine neuen Beiträge Access Tabellen & Abfragen: CurrentUser() in neuen Datensatz eintragen 2 mafke 924 16. Aug 2004, 15:49
mafke CurrentUser() in neuen Datensatz eintragen
Keine neuen Beiträge Access Tabellen & Abfragen: Komplexe Beziehungen... wie baue ich mein Formular auf 6 Gast 1867 25. Jun 2004, 14:36
Florianbur Komplexe Beziehungen... wie baue ich mein Formular auf
Keine neuen Beiträge Access Tabellen & Abfragen: Suchen in Formular 1 Sumo_Racer 1092 28. Mai 2004, 21:59
lothi Suchen in Formular
Keine neuen Beiträge Access Tabellen & Abfragen: Access Formular 2 Mielke 951 06. Mai 2004, 21:49
Hausmeister Access Formular
Keine neuen Beiträge Access Tabellen & Abfragen: Werte aus Formular per VBA in andere Tabelle anfügen 1 Gast 1861 04. Apr 2004, 21:27
el_gomero Werte aus Formular per VBA in andere Tabelle anfügen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage aus zwei Tabellen in einem Formular ohne Unterformul 4 Hippolytus 749 09. März 2004, 15:07
Hippolytus Abfrage aus zwei Tabellen in einem Formular ohne Unterformul
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: PHP Forum