Hi,
ich habe folgendes Problem:
In einem Formular (Formular1) gebe ich Namen und Vorname ein. Bei klicken auf einen Button soll überprüft werden, ob diese Daten im Hauptformular (Stammdaten) bereits vorhanden sind. Wenn ja soll sich "Formular1" schließen und in "Stammdaten" der entsprechende Datensatz angezeigt werden. Wenn nein soll sich "Formular1" schließen und die Daten in einen neuen Datensatz in "Stammdaten" in die entsprechenden Felder übertragen werden.
Ich habe dies so gelöst:
Private Sub Befehl0_Click()
If DCount("Name2", "Stammdaten", "[Name]=' " & Me!Name2 & " ' ") And DCount("Vorname2", "Stammdaten", "[Vorname]=' " & Me!Vorname2 & " ' ") Then
MsgBox "Ein Eintrag mit diesem Namen besteht bereits!"
Forms!Stammdaten.Form.RecordsetClone.FindFirst "[Vorname]=' " & Me.Vorname2 & " ' " And "[Name]=' " & Me.Name2 & " ' "
Forms!Stammdaten.Form.Bookmark = Forms!Stammdaten.Form.RecordsetClone.Bookmark
DoCmd.Close acForm, "Formular1"
Else: Forms!Stammdaten!Name1 = Me!Name2
Forms!Stammdaten!Vorname1 = Me!Vorname2
DoCmd.Close acForm, "Formular1"
End If
End Sub
Was hervorragend funktioniert sind die Überprüfung und die Übertragung der Daten bei Nichtübereinstimmung. Was nicht funktioniert ist das Anzeigen des entsprechenden Datensatzes bei Übereinstimmung. Woran kann das liegen und wie muss ich es richtig machen?
Besten Dank im Voraus für Eure Hilfe!
Hallo,
es liegt zunächst an den überflüssigen/falsch gesetzten Leerzeichen. Lass die weg..:
If DCount("Name2", "Stammdaten", "[Name]='" & Me!Name2 & "'") And DCount("Vorname2", "Stammdaten", "[Vorname]='" & Me!Vorname2 & "'") Then
Weiterhin ist auch die Logik dieser Bedingung nicht zielführend..
Vorschlag:
If DCount("*", "Stammdaten", "[Name] & '|' & [Vorname]='" & Me!Name2 & "|" & Me!Vorname2 & "'") > 0 Then
(Auf Name "Name" dringend verzichten!)
PS:
http://www.ms-office-forum.net/forum/showthread.php?t=270188
Crossposting ist nicht erwünscht!!
Hallo,
zusätzlich, trotz Crossposting:
Forms!Stammdaten.Form.RecordsetClone.FindFirst "[Vorname]='" & Me!Vorname2 & "'" & " And "[Name]='" & Me!Name2 & "'"
Gruß Oma