Access

Hallo Gemeinde,
hab da mal wieder ein kleines Access-Problem. Und zwar möchte ich aus mehreren verschiedenen Formularen eine gleiche Prozedur ausführen lassen, (Damit ich nicht in alle Formulare jeweils eine Ereignisprozedur einfügen muß) die bestimmte Daten innerhalb der einzelnen Formulare bearbeiten soll.
Bisher ist es mir leider nicht gelungen, dieses mit der ME-Anweisung zu realisieren.

Meine Frage: Läßt sich die Me-Anweisung in diesem Fall nicht anwenden und wenn ja, wie kann ich mein Problem anders lösen…

Vielen Dank im voraus… Jörg

Hi Jörg,

mit Hilfe des Screen-Objektes kannst Du das gerade aktive Objekt ermitteln, z.B.

Bezeichnung = Screen.ActiveForm.Name

Wenn Du das in Deiner „Globalen“ Prozedur tust, kannst Du damit die Verweise auf die Objekte Deiner Formulare basteln. Der Verweis müsste dann statt

forms![DeinFormular]![Objekt]

in der Art

Forms(„DeinFormular“)(„Objekt“)

erfolgen, also in oberem Beispiel

Forms(Bezeichnung)(„Objekt“)

,denn so kannst Du den Verweis zur Laufzeit variieren.

Me funktioniert glaube ich nicht.

Grusz, Dennis

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo.

Meine Frage: Läßt sich die Me-Anweisung in diesem Fall nicht
anwenden und wenn ja, wie kann ich mein Problem anders
lösen…

„Me“ bezeichnet immer den Aufruf aus dem aktuellen Objekt heraus. Daraus folgt, daß Du der Standardfunktion das Formular als Objekt übergeben mußt wie z.B.

=MachMalWas(Me) als Funktionsaufruf ins Ereignis der Form

und

Public Function MachMalWas(DasIsNeForm As Form)
blablabla
End Function

in ein Modul gestellt. Das funktioniert dann. Oder Du arbeitest mit Screen.ActiveForm (wurde ja schon gepostet). Dann mußt Du aber den Fehlerfall abfangen, daß gerade kein Formular aktiv ist.

Gruß kw