Hallo,
was mache ich falsch? Ich habe eine Aktualisierungsabfrage erstellt und die soll jetzt beim Beenden von Access ausgeführt werden. Das klappt auch aber die Abfrage holt sich nicht die Daten aus dem Formular. Hier der SQL-Code:
UPDATE tblBenutzer SET tblBenutzer.LoginDate = Date(), tblBenutzer.Status = No
WHERE (((tblBenutzer.Benutzer)=[Formulare]![FrmEinloggen]![TxtName]));
Der Name des Formulars wie auch der Felder sind korrekt!
Gruß KlaSur
Hallo,
es kommt auf den Kontext an, wie der SQL-Code ausgeführt wird. Wenn der SQL-Code in VBA ausgeführt werden soll, muss zunächst die Textbox ausgelesen und dann explizit der SQL Code als String dynamisch zusammengesetzt werden.
Der zweite Punkt wäre eine Frage der Eindeutigkeit. Die Update Anweisung sollte mit der Where-Condition über den PK der Tabelle 'tblBenutzer' eingeschränkt werden und nicht über den Benutzernamen oder ist der Benutzername der PK?
Des weiteren stellt sich die Frage, warum die Daten des angemeldeten Benutzers in einem Formular gespeichert werden. So etwas sollte immer in Variablen zwischengespeichert werden und nicht in der GUI.
Gruß
Ulrich
Hallo Ulrich,
ich habe das beim Formlarereigniss "Beim Schließen" hinterlegt. Die Formulare werden per Registerformat angezeigt und wenn jetzt ein User komplett "Access" oder "Runtime" schließt dann wird diese Abfrage ausgeführt. Das kann natürlich gerade nicht das aktelle Form sein. Ich will mit der Abfrage erzielen das sich der User "ausloggt"
Gibt es eine bessere Methode?
Gruß Klaus
Hallo Klaus,
die Erkennung, ob Access beendet wird, erfolgt oft über ein verstecktes Popup-Formular. Soweit alles ok, allerdings solltest du beim Login die UserID in einer globalen Variablen hinterlegen und dann kannst du unabhängig von irgendwelchen anderen Formularen beim schließen des Popup-Formulars deine SQL-Anweisung mit der globalen Variable zusammensetzen. Die UserID könnte dann z.B. der PK in der Tabelle 'tblBenutzer' sein.
Gruß
Ulrich
Moin Ulrich,
werde es mal mit der globalen Variable versuchen. Hab Dank für deine Hilfe.
Gruß Klaus