VBA Code fehlt im Access Formular nachdem die Datenbank auf einen anderen Rechner kopiert worden ist

Ich brauche dringend Eure Hilfe. Ich habe eine Datenbank mit Access2003 aufgebaut. Sie umfasst viele Tabellen die über Beziehungen miteinander verflochten sind. Ich habe auch Formulare gebastelt mit derer Hilfe sich die Benutzereingabe vereinfachen lässt. Hinterlegt ist natürlich ein Code in VBA. Der auf meinen Rechner voll funktionsfähig ist. (VBA 6 Vollversion ist auch installiert)

Problem:
Ich habe alle Codezeilen in Access getippt. Alles funktioniert, doch sobald ich die Datei kopiere und auf einen anderen Rechner aufspiele kommt folgende Fehlermeldung:

„Sie haben als Einstellung der Ereigniseigenschaft den Ausdruck Bei Laden eingegeben. Dieser Ausdruck hat einen Fehler verursacht: Modul nicht gefunden.“

Ich verstehe nicht was er von mir will. Es gab dann auch einen Fehlercode von MS 283 806, dort wird darauf hingewiesen das alle Bibiotheken überprüft werden müssen. Das quasi alle Befehle vorhanden sind. Teilweise habe ich diese Verweise auf den Rechner nachverfolgt es scheint alles vorhanden zu sein. (Extras/Verweise)

Also liegt es wohl nicht daran. Ich habe noch ein weiteres Formular auf welches ich zugreifen kann. Dort kann ich den Code sehen.

Bei dem Fehlerhaften kann ich Ihn aber nicht mehr sehen. Ich kann nur das optische ansehen; Textfelder usw. und sobald ich an den Code ran will kommt die Sanduhr. Es scheint so als ich alles kopiert hätte aber der Code wurde nicht mitkopiert. Ich verstehe das nicht.

Ich habe mal zwischendurch ein Modul aus versehen erstellt und es wieder gelöscht. Kann da irgendwas durcheinander gekommen sein. Aber wie gesagt auf meinen Hauptrechner läuft das Zeug. Nur wenn ich es kopiere kann ich den Code des einen Formulars nicht mehr öffnen.

Ich brauche dringend Eure Hilfe, ich habe viel Arbeit in diese Datenbank gesteckt, es wäre sehr schade wenn ich Sie auf keinen anderen Rechner zum laufen brächte.

Bitte um detailierte Lösungsmöglichkeite/Ansätze

Wenn in deinem Original alles funktioniert, solltest du dort ersteinmal folgendes machen und Fehler die evtl. auftauchen beheben:

  • Gehe in deinen VBA-Code und Kompiliere ihn (Debuggen/Kompilieren)

  • Gehe auf „Datenbank komprimieren und reparieren“

  • Öffne das Formular mit dem fehlerhaften Code in der Entwurfsansicht, öffne die Formulareigenschaften das Register und schau, ob in der Zeile eine [Ereignisprozedur] hintelegt ist.
    -> Öffne nun in die Ereignissprozedur (VBA-Code) und prüfe die Eintragung. Wenn alles ok ist, dann baue eine Fehlerroutine ein z.B. „On Error Goto Next“.
    -> Wenn keine [Ereignisprozedur] hinterlegt ist, dann erstelle eine und lösche sie danach wieder.

  • Wenn bisher alles i.O. war, dann kopiere die mdb nocheinmal auf den anderen Rechner und Vergleich die Verweise nocheinmal ganz genau.

  • Prüfe dann noch, ob der neue Rechner die gleiche OFFICE-Version installiert hat ober evtl. eine ältere.

Hallo Gerhard,

ich habe Deine Anweisung befolgt doch keinen Erfolg gehabt. Beide Formulare habe ich Kompiliert. Die Datenbank habe ich über Reparieren Resetet. Beim fehlerhaften Formular habe ich die Ereignisprozedur Beim Laden gelöscht und neu gespeichert. Danach auf den anderen Rechner aufgespielt. Ohne Erfolg. Die gleiche Fehler Meldung. Ich kann immer noch nicht auf den anderen Code zugreifen. Ich kann lediglich im VBA Modus (unter Access) im Projekt Fenster (links)sehen das ich ein Formular habe, jedoch wenn ich zweimal drauf Clicke um den Code zu sehen kommt die Sanduhr. Er will ihn mir nicht zeigen. Es scheint so als ob das gesamte Modul fehlt. Aber wieso? Die Prozedur beim Laden ist die erste Routine die abgearbeitet wird, falls ich mich nicht täusche. Und dort steht nur ein Ausdruck „Let gint_loeschzeile = 0“ es ist das einfachste der Welt. Ich schätze er hat allgemein kein Zugriff auf den Code. Aber ich weiß net warum. Ich tendiere schon fast dazu alles neu zumachen, was wohl einen Tag oder so in Anspruch nehmen wird.

Hast Du vielleicht noch eine Idee? Sind die Codezeilen beschränkt? Wenn er einen Fehler hat, stoppt das Dingen doch für gewöhnlich und lässt es zu den Code zu korrigieren. Aber das der Gesamte Code weh ist?

Da hilft wohl nur noch das Brecheisen:
Im Terminal (Eingabeaufforderung) folgendes eingeben:

msaccess /decompile C:\Datenbankname.mdb

  • Beseitigt alte Formular und Bericht-Codes, welche zu Bugs führen
  • Vor dem ausführen eine Sicherungskopie der Datei erstellen!

Noch einige andere Ideen/Hinweisse:

  • Den „Let“ Befehl benutze ich eigentlich nie, geht ja auch ohne.
  • Variablennahme beginnen bei mir immer mit dem Datentyp. Z.B. strText As String; longZahl As Long …usw. Dies hilft bei größeren Prozeduren ungemein.
  • Egal wie einfach eine Prodzedur ist, eine Fehlerroutine hilft sehr und Access dankt es dir durch weniger/keine Abstürze.

Hallo Schuetzz,

wenn auf dem anderen PC Access genauso installiert ist wie auf dem Haupt-PC und alle Verweise auch genauso vorhanden/angekreuzt sind, hätte ich da jetzt auch keine Idee. Was ist denn, wenn Du das Formular auf dem anderen PC einfach mal testweise löscht und provisorisch neu erstellst (kannst dir ja den Code vorher in eine Textdatei kopieren und dann neu einfügen)? Geht es dann es dann?

Gruß,
Petro

Umständlicher WEG?
Also ich habe folgende Vermutungen:

  • Entweder habe ich den Stick zu schnell gezogen, da er in Blöcken beschrieben wird, könnte ich mir vorstellen das dort was verloren gegangen ist. (Es gab mal vor 2 Jahren billig Sticks die fehlerhafte Sektoren aufweisen)

  • Ich arbeite auf meinem Hauptrechner mit Vista 64 Business, könnte mir vorstellen das er den Code an Vista im Hintergrund anpasst und es Windows XP 32 Systeme nicht verarbeiten können.

  • Aus irgend einen komischen Grund habe ich vielleicht was falsches gelöscht, falsches in Access an Befehlen verwendet?

  • MS Bug aufgrund von …?

Wie dem auch sei, selbst wenn ich dass andere (intakte)Formular kopiere und im eine neue Datenbank einfüge, zickt er rum und macht plötzlich den gleichen Müll.

Das einzige was ich jetzt gemacht habe:
-neue Datenbank
-Tabellen und Berichte neu eingefügt
-Beziehungen wiederhergestellt
-Prozduren nicht mehr umbenannt „Liste22“ so gelassen statt „Artikelwahl“ o.ä.
-diesmal in jeder Prozedur „On Error goto …“ angewendet.
-andere Workstation, statt Vista64, XP32

Habe ein geniales Buch „VBA Grundlagen Wissen und Profi Wissen“ + „Kochbuch“ von Hanser Verlag ca. 10 Jahre alt. Aber ist eigentlich noch up to date. Dort wird auf Deutsch und relativ leichtverständlich beschrieben.

P.S.
Total Zeit aufwendig die Access Reparatur. :smile:

BISHER LÄUFTS NOCH, habe aber noch nicht alles umgeschrieben…