2016-04-19 12 views
0

Ich frage mich, ob jemand eine Lösung für ein Problem hat, das ich gerade mit meiner Access-Datenbank habe.Access Trigger - Erstellen einer Tabellenzeile beim Update

Die Datenbank enthält eine Reihe von Tabellen. Sobald ein neuer Datensatz hinzugefügt wird, möchte ich einen neuen Eintrag (Kopieren über den Kontonamen und Phase automatisch, wenn es nicht existiert) in eine andere Tabelle - andere sparen müssen sie manuell eingeben & Minimierung des Risikos einer falschen Dateneingabe.

Ich habe versucht, eine onChange Update-Funktion, und während dies funktioniert, überprüft es nicht, ob der Eintrag derzeit in der anderen Tabelle existiert, es fügt nur hinzu.

Irgendwelche Ideen zur Umsetzung?

+1

können Sie Daten-Makros verwenden, um einen neuen Datensatz in einer anderen Tabelle zu erstellen. Siehe [diese Antwort] (http://stackoverflow.com/a/28079133/726127). Der Vorteil hierbei ist, dass Ihre Logik unabhängig davon ausgeführt wird, welche Form den Datensatz erstellt oder ob der Datensatz von außerhalb von Access geändert/erstellt wurde. – Brad

+0

Perfekt, vielen Dank! – user3279907

+0

Sorry @Brad Ich habe gerade festgestellt, dass wenn ein Feld in der ersten Tabelle geändert wird, es eine neue Zeile erstellt, anstatt die bestehende Zeile in der zweiten Tabelle zu bearbeiten. Ist Ihnen bekannt, wie das Datenmakro geschrieben werden kann, um die neu erstellte Zeile zu ändern, anstatt ein neues in der anderen Tabelle hinzuzufügen? – user3279907

Antwort

0

Wenn Sie VBA verwenden können, sollte diese Logik funktionieren.

Der DLookup überprüft, ob der Datensatz existiert, ersetzen Sie also die Feld- und Tabellennamen entsprechend. Verwenden Sie die Where-Bedingung, um anzugeben, nach welchem ​​Datensatz Sie suchen, und Sie müssen ihn verwenden, um auf Ihre Formularsteuerelemente zu verweisen. Siehe Link für weitere Hilfe in Syntax/Referenzierung.

DLookup Function

+0

Großartig! Vielen Dank :) – user3279907