Edit, update Datensatz mit DAO.Recordset

Ich habe zwei Tabellen Table1 und Table2. In Table1 es wird Spalte genannt FileID und Table2 es wird Spalte genannt FileID. Jetzt FileID ist nicht eindeutig, so gibt es bestimmte Zeilen aus, in denen FileID wiederholt sich in beiden Tabellen.
Ich habe ein Formular in Access, wo es ein Feld namens GetDate aus Table1.
Muss ich etwas in vba, dass wenn Sie änderungen an der GetDate Teil auf die form (die ist aus Table1 Tabelle), dann sollten die update-Spalte Date mit dem aktuellen Datum und der Zeit, die in Table2

Habe ich es auf folgende Weise. Aber die Aktualisierung nur der erste Datensatz der Date Aus Table2 mit der aktuellen Zeit und nicht die zweite mit FileID = 1.
es gibt zwei Einträge für FileID = 1 im table2 so sollte es update 2 Datensätze mit dem aktuellen Datum und nicht ein.
hier ist mein code für es.

Option Compare Database

Private Sub GetDate_AfterUpdate()
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
' Dim rst2 As DAO.Recordset


Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("SELECT  [GetDate], [DATE] FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID2 where Table1.FileID = Table1.FileID", dbOpenDynaset)
'Begin row processing
Do While Not rst.EOF
rst.Edit
rst![Date] = Now
rst.Update
rst.MoveNext
Exit Do

Loop



rst.Close
Set rst = Nothing


End Sub

danke für die Hilfe!

  • Der code sieht gut aus, also muss der Fehler in der Abfrage, die Sie verwenden, um die recordset. Haben Sie versucht mit, dass als eine Abfrage auf Ihrer eigenen und sicherstellen, dass es gibt die beiden Datensätze? Wenn nicht, Bearbeiten es, bis es funktioniert!
  • Die Abfrage gibt die gesamten Datensätze aus beiden Tabellen. Die brauche ich nicht. So meine andere Frage ist, kann ich eine Abfrage machen, die Lesen können, die "FileID" - Feld aus einem Formular. E. g. Ich bin versucht zu Bearbeiten, "GetDate" - Feld auf dem Formular und die "FileID" für das aktuelle Datensatz, sagen wir 2.
  • Ja, aber ich vermute, das ist ein job für Google und ein wenig Spielereien mit der Abfrage. Sie haben jedoch eine seltsame Bedingung in die es, das kann ein Anfang sein: wo "Tabelle1".FileID = "Tabelle1".FileID wird immer wahr sein, also alle Datensätze werden zurückgegeben. Wenn es das ist, was Sie wollen, dann ist es überflüssig und sollte gestrichen werden. Wenn es ist nicht, was Sie wollen (wie ich vermute), dann würde ich vermuten, dass ' s, wo dein Fehler ist.
  • Ihre Abfrage SELECT [GetDate], [DATE] FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID2 where Table1.FileID = Table1.FileID müssen nur SELECT [GetDate], [DATE] FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID2; die WHERE - Klausel-Ausdruck immer true sein, und ist nur Zeitverschwendung.
InformationsquelleAutor user3473275 | 2014-04-10
Schreibe einen Kommentar