grotten
Schusselkopf
Hallo allerseits,
ich brauche ein kleines VBA-Script zur Neusortierung bzw. Umnummerierung einer Datenbank, dafür habe ich zunächst einmal zwei Tabellen, Tabelle1 enthält das Feld ArtikelNr, in Tabelle2 gibt es die Felder Neu und Alt. Ich möchte nun etwas in der folgenden Weise tun:
Daten von Tabelle2.Neu in Tabelle1.ArtikelNr wo Tabelle1.ArtikelNr = Tabelle2.Alt
Dazu schwebte mir folgende Execute-Anweisung vor:
DB.Execute ("UPDATE Tabelle1 SET Tabelle1.ArtikelNr = Tabelle2.Neu WHERE Tabelle1.ArtikelNr = Tabelle2.Alt;")
Klingt für mich eigentlich nicht schlecht, aber wird beantwortet mit:
Laufzeitfehler '3061':
2 Parameter erwartet, aber es wurden zu wenig Parameter übergeben.
Schreibe ich stattdessen:
DB.Execute ("UPDATE Tabelle1 SET Tabelle1.ArtikelNr = Tabelle2.Neu WHERE Tabelle1.ArtikelNr = (SELECT Tabelle2.Alt FROM Tabelle2 WHERE Tabelle2.Alt = Tabelle1.ArtikelNr);")
kommt die gleiche Fehlermeldung, allerdings wurde nur 1 Parameter erwartet. Mein letzter Versuch lautet:
DB.Execute ("UPDATE Tabelle1 SET Tabelle1.ArtikelNr = (SELECT Tabelle2.Neu FROM Tabelle2 WHERE Tabelle2.Alt = Tabelle1.ArtikelNr);")
Fehlermeldung in diesem Fall:
Laufzeitfehler '3073':
Operation muss eine aktualisierbare Abfrage verwenden.
Ich kenne mich leider mit Access und VBA nicht besonders aus, deswegen habe ich keine Ahnung wie ich das Problem lösen soll. Hat jemand einen Tipp?
Gruß,
Gordon
ich brauche ein kleines VBA-Script zur Neusortierung bzw. Umnummerierung einer Datenbank, dafür habe ich zunächst einmal zwei Tabellen, Tabelle1 enthält das Feld ArtikelNr, in Tabelle2 gibt es die Felder Neu und Alt. Ich möchte nun etwas in der folgenden Weise tun:
Daten von Tabelle2.Neu in Tabelle1.ArtikelNr wo Tabelle1.ArtikelNr = Tabelle2.Alt
Dazu schwebte mir folgende Execute-Anweisung vor:
DB.Execute ("UPDATE Tabelle1 SET Tabelle1.ArtikelNr = Tabelle2.Neu WHERE Tabelle1.ArtikelNr = Tabelle2.Alt;")
Klingt für mich eigentlich nicht schlecht, aber wird beantwortet mit:
Laufzeitfehler '3061':
2 Parameter erwartet, aber es wurden zu wenig Parameter übergeben.
Schreibe ich stattdessen:
DB.Execute ("UPDATE Tabelle1 SET Tabelle1.ArtikelNr = Tabelle2.Neu WHERE Tabelle1.ArtikelNr = (SELECT Tabelle2.Alt FROM Tabelle2 WHERE Tabelle2.Alt = Tabelle1.ArtikelNr);")
kommt die gleiche Fehlermeldung, allerdings wurde nur 1 Parameter erwartet. Mein letzter Versuch lautet:
DB.Execute ("UPDATE Tabelle1 SET Tabelle1.ArtikelNr = (SELECT Tabelle2.Neu FROM Tabelle2 WHERE Tabelle2.Alt = Tabelle1.ArtikelNr);")
Fehlermeldung in diesem Fall:
Laufzeitfehler '3073':
Operation muss eine aktualisierbare Abfrage verwenden.
Ich kenne mich leider mit Access und VBA nicht besonders aus, deswegen habe ich keine Ahnung wie ich das Problem lösen soll. Hat jemand einen Tipp?
Gruß,
Gordon