PDA

Vollständige Version anzeigen : methode in einem anderen formular aufrufen


hanswurschd
20.06.2001, 21:06
hi leute!
ist es möglich von aussen (beispielsweise von einem modul eines anderen formulars) eine methode eines (Formular-)Klassenmoduls aufzurufen ? Leider funktionierts nicht wie im Beispiel unten beschrieben auch wenn Formular 2 geöffnet ist . gibt es da einen weg die prozedur im Formular 2 dennoch aufzurufen ?

Beispiel:
Formular 1:
private sub aufruf ()
call prozedur1
End sub
Formular 2:
public sub prozedur1 ()
...
End sub

Wola
20.06.2001, 22:22
Hi,
das was Du möchstest geht. Dazu muß (Voraussetzung) die Form geöffnet sein, die die aufzurufende Routine (Function oder Sub) enthält. Dein Ansatz ist korrekt:

Die aufzurufende Routine muß Public definiert sein.

Der Aufruf benötigt allerdings (immer) einen Verweis auf das Object, in diesem Fall die Form.

Eine Sub rufst Du so auf (das Call kannst Du Dir schenken)

Forms!FrmMitRoutine.PublicSubName

Eine Function analog
xyz = Forms!FrmMitRoutine.PublicFunctionName

Parameter kannst Du ebenfalls wie gewohnt verwenden.


Stell Dir einfach vor, wie Du zum Beispiel die property "Formularbezeichnung" von extern abfragen würdest:

xyz = Forms!MeineFormName.Caption

Nichts anderes ist das mit selbstdefinierten Methoden.

Gruß
wola

A.S.
21.06.2001, 05:23
Pardon,

kann weder das Problem noch die Entgegnung nachvollziehen. Benutze die von Hans genannt Wurst *fg* dargestellte Funktionalität relativ häufig - allerdings eher mit Function's, denn Sub's - ohne damit Probleme zu haben. Auch mußte ich dafür bislang in keinem Fall den Bezug auf das Formular übergeben.

Gruß

Arno

PS: Wenn eine Fehlermeldung kommt, welche (bitte ausführlich)?

Birgit Dannenberg
21.06.2001, 06:45
Guten Morgen.

Ich denke, wola hat recht. Aber ich würde es prinzipiell vorziehen, allgemein verwendbare Prozeduren in Module zu packen und nur die 'lokal' benötigten, Form-bezogenen, ins Klassenmodul.
Schon wegen der 'Transparenz'!

Im übrigen halte ich es für sinnvoll, grundsätzlich die Access-Version zu erwähnen. Bzgl. A2K ist mein Kommentar evtl. hinfällig, da ich bislang noch mit A97 arbeite.

Gruss Birgit.