vergleichen Sie alle Felder in access mit vba/sql
Ich weiß, ich kann zum vergleichen von Werten zwischen zwei Tabellen, aber ich habe nicht brauchte, um es zu tun für mehr als 2 oder 3 Felder bis zu diesem Punkt, so vergleichen Sie Sie jeweils einzeln nicht eine Ausgabe, die ich verwendet, ein code wie dieser:
DoCmd.RunSQL "INSERT INTO Issues
SELECT Eligibility.[Member Id]
, Eligibility.[Sex Code]
, Eligibility.State
FROM Eligibility LEFT JOIN Ref
ON Eligibility.[Sex Code] = Ref.[Sex Code]
WHERE (((Ref.[Sex Code]) Is Null));"
nun, muss ich jedoch vergleichen Sie über 140 verschiedene Felder. gibt es einen besseren Weg, dies zu tun, als Schreibe 140 sql-Anweisungen und laufen Sie alle eins?
ich will, es zu finden, wo die Felder dont enthalten die gleichen Informationen, und ziehen Sie dann die gesamte Zeile aus beiden Tabellen,oder zumindest den Wert in der 5. Spalte, Element-id, und dann kann ich ausführen einer anderen Abfrage ziehen Sie die gesamte Zeile aus, wenn es sein muss (so kann ich beides zur gleichen Zeit), und fügen Sie Sie in eine andere Tabelle und markieren Sie die Zellen, in denen die Abweichungen auftreten.
beide Tabellen in der gleichen Datenbank
beide Tabellen haben die gleiche Struktur, aber die zweite Tabelle möglicherweise nicht alle Werte aus der ersten, so muss ich einen Weg finden, um es entsprechen die Zeilen, die anhand der Element-ID, bevor es beginnt den Vergleich der Zeilen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie vergleichen mithilfe von DAO ziemlich leicht. Mit der
.Fields()
argument, auf ein recordset erhalten Sie alle anderen Felder in das aktuelle recordset.Dadurch können Sie etwas tun:
Wenn Ihre Abfragen sind ähnlich und das einzige was Sie ändern ist ein einzelnes Feld (z.B. eine ID), die Sie sollten in der Lage sein zu ändern die Logik entsprechend.
For Each f In rs1.Fields
im Grunde geht durch alle Feldnamen. Sie grundsätzlich prüfen, jedes diese Feldnamen in jedem Ihrer Aufzeichnungen und sehen, ob Sie gleich in der iff-Anweisung.