Veröffentlicht 26. April 200520 j Und auf ein neues. Ich habe 2 Tabellen, Tabelle1 und Tabelle2 Ich möchte alle Datensätze aus Tabelle1 filtern, in Tabelle2 eintragen und zu guter letzt Tabelle1 vollständig leeren. Hat jemand eine Idee, wie ich das mit VBA realisieren kann?
26. April 200520 j "alle datensätze" und "filtern", widerspricht sich das nicht? also der simpelste aufruf wäre DoCmd.RunSQL "insert into Tabelle2 select * from Tabelle1" DoCmd.RunSQL "delete from Tabelle1" natürlich vorausgesetzt, die tabellen haben die gleiche struktur. ansonsten müsstests du nähere details rausrücken... s'Amstel
26. April 200520 j Hab mich wohl bei der Wortwahl vertan, meinte eigentlich alle Datensätze auslesen. Die Tabellen haben nur ähnliche Strukturen, das heißt, die Felder aus Tabelle1 sind auch in Tabelle2 enthalten, aber die Tabelle2 hat noch weitere Felder. Ich müßte also die einzelnen Felder irgendwie direkt ansprechen. Eine direkte Kopie, so wie du es vorschlägst, ist leider in diesem Fall nicht möglich. Wenn ich richtig liege mit meiner Annahme, müßte ich mit Schleifen und Arrays arbeiten. Und genau da hab ich jetzt 'nen absoluten Hänger. :confused: :confused:
26. April 200520 j dann probier doch mal insert into Tabelle2 (test1, test2) select feld1, feld3 from Tabelle1 oder update Tabelle2 set Tabelle2.test1 = Tabelle1.feld1, Tabelle2.test2 = Tabelle1.feld3 d.h. nur ausgewählte felder aus tab1 kommen in bestimmte felder in tab2. alternativ erstelle zwei recordsets und weise in einer schleife die felder indirekt zu, z.b. do while not rsTab1.EOF rsTab2!test1 = rsTab2!feld1 rsTab2!test2 = rsTab2!feld3 rsTab1.movenext loop s'Amstel
6. Juni 200520 j Es funktioniert jetzt. Hatte nur die Reihenfolge der Befehle nicht beachtet. Ich wollte die Tabelle leeren bevor die Daten komplett in der anderen Tabelle gespeichert waren.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.