Supportnet / Forum / Datenbanken
Variablen vom Typ Long an SQL String zu übergeben
Frage
Ich möchte 1. eine Eingabetabelle per VBA auslesen. Hier sind Mitarbeiterdaten gespeichert (Fremdschlüßel ist MaNr, Long Integer). Diesen Fremdschlüssel speichere ich in einer Variablen MaNr (Long). Diese Eingabetabelle lese ich Datensatz für Datensatz aus und schreibe den Variablenwert als Kriterium in eine Anfügeabfrage (so dass nur der jeweilig aktuelle Datensatz ggf editiert und dann an eine weitere Tabelle angefügt werden soll.
Leider ignoriert SQL die jeweilige Variable als Kriterium für die Anfügeabfrage und fügt grundsätzlich immer alle oder keine Datensätze an die weitere Tabelle an.
Kann mir hier jemand helfenß
Antwort 1 von Teddy7
Eine Anfügeabfrage fügt an - egal ob der datensatz schon mal da war oder nicht.
Einzige Ausnahme: Wenn die Variable in der Zieltabelle als eindeutiger Schlüssel definiert ist bekommst Du bei der Anfügeabfrage eine Fehlermeldung, wenn der Key schon vorhanden ist.
Lösung:
Wenn Du schon über VBA liest, warum schreibst Du dann nicht auch über VBA. Dabei kannst Du erst mal mit dem Schlüssel lesen, ob der Datensatz da ist.
Wenn nicht machst Du einen .addnew - ansonsten einen .edit. Dann Daten zuweisen und zum Schluß jeweils einen .update.
Wichtig: nicht vergessen den Kernspeicher am Ende wieder freizugeben.
Gruß
Teddy
Einzige Ausnahme: Wenn die Variable in der Zieltabelle als eindeutiger Schlüssel definiert ist bekommst Du bei der Anfügeabfrage eine Fehlermeldung, wenn der Key schon vorhanden ist.
Lösung:
Wenn Du schon über VBA liest, warum schreibst Du dann nicht auch über VBA. Dabei kannst Du erst mal mit dem Schlüssel lesen, ob der Datensatz da ist.
Wenn nicht machst Du einen .addnew - ansonsten einen .edit. Dann Daten zuweisen und zum Schluß jeweils einen .update.
Wichtig: nicht vergessen den Kernspeicher am Ende wieder freizugeben.
Gruß
Teddy

