Pittiplatsch Geschrieben 13. April 2005 Teilen Geschrieben 13. April 2005 Hab malwieder 'n kleines Problem mit VBA. Ich habe ein Formular zur Erfassung von Mitarbeiterdaten. Sobald hier alle wichtigen Felder ausgefüllt sind, soll geprüft werden, ob der Datensatz bereits vorhanden ist oder nicht. Das funktioniert. Ist er nicht vorhanden, solen die Daten in die Personal-Tabelle gespeichert werden. Das funktioniert auch ganz prima Jetzt möchte ich aber die dabei vergebene Personalnummer auslesen, da ich diese für weitere Aktionen benötige. Und genau da hängt es. Hab im Quelltext folgendes bereits ausprobiert: Dim sqlstr2 As String sqlstr2 = "SELECT COUNT(Name) FROM tbl_Personal WHERE Name='" & ma_nachname & "' AND Vorname='" & ma_vorname & "' " MsgBox CurrentDb.OpenRecordset(sqlstr2, dbOpenDynaset)(0) bzw. Dim sqlstr2 As String sqlstr2 = "SELECT Personalnummer FROM tbl_Personal WHERE Name='" & ma_nachname & "' AND Vorname='" & ma_vorname & "' " MsgBox CurrentDb.OpenRecordset(sqlstr2, dbOpenDynaset)(0) Aber in der MsgBox steht dann entwerder Kein aktueller Datensatz oder 0 Der Datensatz ist aber in jedem Fall schon gespeichert, da diese Abfrage erst nach dem Speicher-Befehl erfolgt. Wer hat 'ne Lösung für mich? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 13. April 2005 Teilen Geschrieben 13. April 2005 "Name" solltest du in Access als Spaltenname vermeiden, da das wohl auch Accessintern irgendwo verwendet wird. Da hab ich mich auch schon mal blöd gesucht und nach dem Umbenennen des Spaltennamens ging es dann. Deine SQL-Abfragen selber sehen ok aus, auch wenn man das kürzer lösen könnte. msgbox(DCount("Name","tbl_Personal","Name='" & ma_nachname & "' AND Vorname='" & ma_vorname)) bzw. msgbox(Dlookup("Personalnummer","tbl_Personal","Name='" & ma_nachname & "' AND Vorname='" & ma_vorname)) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pittiplatsch Geschrieben 13. April 2005 Autor Teilen Geschrieben 13. April 2005 Danke Wolle, der Tip ist gut. Der Spaltenname "Name" wird auch akzeptiert, daran lag es nicht. In meinem Quelltext war ein Fehler in der Abfrage, ob der Datensatz bereits vorhanden ist oder nicht. Ich hatte geschrieben If IsNull(sqlstr) Then wodurch ich immer in den falschen Abschnitt des Quelltextes kam. Das Programm war immer der Meinung, der Datensatz existiert schon und hat ihn garnicht erst gespeichert. Daher konnte ich auch keine Personalnummer auslesen, die wurde ja nicht vergeben. Richtig mußte es lauten If (CurrentDb.OpenRecordset(sqlstr, dbOpenDynaset)(0) = 0) Then Jetzt funktioniert es. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
myimmortal718 Geschrieben 19. April 2005 Teilen Geschrieben 19. April 2005 Hallo Pittiplatsch! Habe gerade ein Problem mit meiner Datenbank für meine Projektarbeit und habe gerade gelesen, dass du mir weiterhelfen könntest. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pittiplatsch Geschrieben 26. April 2005 Autor Teilen Geschrieben 26. April 2005 Schau dir mal den Beitrag an: [ACCESS] TableExists wird nicht angenommen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.