Auslagerung in ein Modul

Gordon Gekko

Grünschnabel
Yoho,

ich bearbeite gerade eine Datenbank in Access und plage mich mit dem VBA-Code herum.

Jetzt stehe ich vor dem Problem: Ich möchte einen Code-Teil für mehrere Formulare gleichzeitig gültig machen - und ihn daher auf ein Modul auslagern.
Zb. eine bestimmte Eingabeüberprüfung

Es funktioniert natürlich wenn ich das Formular direkt anspreche zb. Form_frmKunde, aber ich möchte irgendwie herausfinden von welchen Formular der Befehl kam (habs jetzt mit einer variablenübergabe per Sub Befehl(form.name)) - doch wenn ich den formularnamen als variable nehme, lassen sich schlussenldich die Felder damit nicht ansprechen.

varFormularherkunft = Form.name
--> formular = "Form_" + varFormularherkunft
formular.img1= "...."

funktioniert nicht. Denke das Problem sollten schon viele gehabt haben und es gibt ne recht einfache Lösung dafür. Bitte um Hilfe.

Merci schon im voraus
 
Lösung

Ich glaub ich hab eine Lösung gefunden, ich hatte sie vorher schon, doch da hat es nicht funktioniert.

Beim erneuten Versuch von Anfang an liefs plötzlich wie geschmiert.
Weiß nicht obs die eleganteste Lösung ist, aber bestimmt ists nicth die schlechteste und sie funktioniert.

Auch wenn keiner geantwortet hat, trotzdem danke.

Cu Gordon
 
hi,
also ich würd nun generell sagen, das das mit der Übergabe gehen muss.
Ob in VBA auch weis ich net, bin "nur" VB_Freak (siehe nick :-) )

Aber wenn du deinen Parameter als eine Objektvariable deklarierst, und dann deine Form übergibst, solltest du zugriff über die variable auf deine Form haben.


Function Bla (MyForm as Form)
MyForm.Caption="was weis ich"
end Function
 
Hallo, du Freak

an diese Lösung hab ich mich eh gehalten.
Mein Problem war nur, dass ich anfangs nicht genau wusste wie. Habs genau so, also mit einer Objektvariable funktioniert, aber er hat mir nie die Objekte im Form angesprochen. Es war wohl ein Tippfehler?, ein Access-Bug? oder sonst irgendein Blödsinn der mich dann so verunsichert hat.

Hatte dann nur noch ein Problem mit einer normalen Variablenübergabe, da ich den Prozess immer mit Call Modul1.Logoladen(form.name) aufgerufen habe.

Wobei Sub Logoladen(herkunft as string) angegeben war
und ich diesen wert aber gleich wieder in einen weitern Sub übernehmen wollte. Habs auf die etwas unfeine Lösung gemacht die variable nochmal zuzuweisen:

variable = herkunft
call formularauswahl(herkunft)

Langes Gschichtl, kurzer Sinn, jetzt läuft alles. Trotzdem nochmals danke,
wenn du willst kannst du gerne versuchen mir bei einem weiteren Problem zu helfen.

Siehe Ordnerpfad-Problem

CU Gekko
 

Neue Beiträge

Zurück