Access VBA-Code "Wert setzen"
Guten Tag gutefrage.net Community
Ich habe ein Problem in Access, wie man sieht^^
Ich vresuche in einer Datenbank einen Wert, der von einem Formular aus einer Tabelle genommen wird in einer anderen Tabelle zu diesem zu ändern.
Jedoch bringe ich das nur mit Makros, die jedoch die ganze DB nach einer Zeut zumüllen.^^
Vielleicht kann mir jemand helfen, das Makro "SetzenWert" gegen einen VBA-Code zu tauschen, so könnte ich mich in VBA auch gleich weiterbilden. VBA ist immerhin Neuland für mich, wie das Internet für Angela Merkel ;)
Vielen Dank schonmal im Vorraus! :)
2 Antworten
Ich habe das jetzt nur oberflächlich angesehen, aber es gab zumindest in früheren Access-Versionen die Funktion, ein Makro in VB-Code umwandeln zu lassen. Und das hat erstaunlich gut funktioniert, also da kam recht schlanker, sauberer Code heraus. Habe es zwar sehr selten benutzt, weil ich nie wirklich mit Makros gearbeitet habe, aber die paar Male lief das solide.
Und die Funktion war früher zumindest auch sehr leicht zu finden, da brauchte man nicht wirklich zu suchen.
Wenn Du erstmal den Code siehst, der da generiert wurde, hast Du auch den perfekten EInstieg, das noch nach Deinen Wünschen anzupassen.
Hat das Formular (oder das relevante Feld) vielleicht eine Bezeichnung, die Leerzeichen, Umlaute oder andere Sonderzeichen enthält, oder eine Bezeichnung, die bereits von Microsoft für etwas verwendet wird? Ist z.B. eine ganz schlechte Idee, ein Tabellenfeld, in das ein Name eingetragen werden soll, "Name" zu nennen... Fast alles in Access hat eine Name-Eigenschaft und früher oder später hat man einen "unerklärlichen" Fehler, weil der Feldname falsch interpretiert wird.
Und wann tritt der Fehler auf: Schon beim Konvertieren (wird gar kein Code generiert?) oder erst, wenn man den generierten Code aufruft?
Hallo,
na den Fehler kannst Du doch einfach beheben indem Du in den Makros nach dem Formular suchst das es nicht gibt. Und Micmens Kommentar beachten, keine reservierten Wörter für Variablen, Felder oder Formulare verwenden!
- Gehe ins Datenbankfenster ...
- suche das Makro aus, in dem Dein SetzenWert-Makro definiert ist ...
- klicke mit der rechten Maustaste drauf und wähle "Speichern als Modul"
- wähle einen bezeichnenden Namen (ohne Leerschritte oder Umlaute) aus
- das Makro (mit all seinen Befehlszeilen) wird dann in VBA umgewandelt
- jetzt kannst Du das betreffende Formular öffnen,
- Dein Steuerelement mit Makro-Aktion auswählen ...
- und als Ereignisprozedur die VBA-Funktion aus dem Modul zuordnen
Du kannst die betreffenden Codezeilen aus VBA auch kopieren und in ein extra Access-Modul hineinkopieren und abspeichern ... muss aber nicht sein.
Gruß, Bernd. ;-)
Das mit dem konvertieren habe ich schon probiert, aber leider funktioniert dieser nicht, da meckert er rum, dass es das eine formular nicht gäbe^^