ich verwende Access 2000. Ich erstelle mittels VBA-Code eine Access-DB, und möchte in einem Modul bestimmte Zeilen löschen (die Kopierfunktion).
Ich verwende folgenden Code:
Set EinAccessObjekt = CreateObject(„Access.Application“)
EinAccessObjekt.OpenCurrentDatabase(„VollständigerDateiname“)
EinAccessObjekt.VBE.VBProjects(1).VBComponents(„MeinModul“).CodeModule.DeleteLines 263, 65
funktioniert im VBE der DB die ausführt wunderbar, befindet sich das VBComponent aber in der erstellten DB kommt der Fehler:
„Ungültiger Prozeduraufruf oder ungültiges Argument“
Ich habs versucht über exklusiven Zugriff, dass bringt aber gar nix.
Hat jemand ne Idee?
Bei mir (A2003) funktioniert dieser Code ohne Probleme:
Dim EinAccessObjekt As Object
Set EinAccessObjekt = CreateObject(„Access.Application“)
EinAccessObjekt.OpenCurrentDatabase („c:\db1.mdb“)
EinAccessObjekt.VBE.VBProjects(1).VBComponents(„Modul1“).CodeModule.DeleteLines 8, 4
EinAccessObjekt.Quit
Set EinAccessObjekt = Nothing
Es werden 4 Zeilen, beginnend an der 8. Zeile (Leerzeilen mit eingerechnet) im Modul1 in der ext. Datei „C:\DB1.mdb“ gelöscht.
„…befindet sich das VBComponent aber in der erstellten DB…“
läßt mich irgendwie vermuten, dass das Modul in der ext. DB gerade erstellt wurde/wird und noch gar nicht gespeichert ist, so dass bei einer weiteren Referenz (auf die Datei) das Modul darin noch gar nicht existiert.
Wenn die Übertragung abgeschlossen ist, ist die neu erstellte DB geschlossen. Die Module existieren dann. Erst im Anschluss wird die DB erneut geöffnet, und der Coder geändert (sofern es funktioniert )