collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 68
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14389
  • stats Beiträge insgesamt: 71332
  • stats Themen insgesamt: 9618
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Prozeduren mehrfach nutzen  (Gelesen 156 mal)

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 458
Prozeduren mehrfach nutzen
« am: Juni 13, 2019, 14:52:33 »
Hallo, mal eine ökonomische Frage.

gegeben ist eine aufwändig gebastelte Prozedur

Private Sub Ein_Button_Click()
   blah blah blah
End Sub

Jetzt soll ein Textfeld beim Eingeben eines "Enter" genau das machen, und zwar mit einem einfachen Verweis

Private Sub Textfeld_Click()
   ??Wie verweist man auf die Prozedur von Ein_Button??
End Sub

Carl
 

Offline PhilS

  • Global Moderator
  • Access-Meister
  • *****
  • Beiträge: 577
    • Tipps zu Access, VBA, SQL und Co.
Re: Prozeduren mehrfach nutzen
« Antwort #1 am: Juni 13, 2019, 16:31:44 »
   ??Wie verweist man auf die Prozedur von Ein_Button??
Private Sub Textfeld_Click()
   Ein_Button_Click
End Sub
So weit das technische Minimum.
Du solltest noch einen Schritt weiter gehen und die Prozedur unter einem eigenen Name, der beschreibt was die Prozedur tut speichern, und dann sowohl in Textfeld_Click als auch  Ein_Button_Click diese neue Prozedur aufrufen. Das hilft in ein paar Wochen ungemein zu verstehen, was dein Code eigentlich tut.
 

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 458
Re: Prozeduren mehrfach nutzen
« Antwort #2 am: Juni 13, 2019, 17:53:20 »
ah, okay, danke.

Legt man dann die Prozeduren unter einem eigenen Modul an?

Kannst Du mir bitte noch sagen, wie ich eine Prozedur in einem anderen "Klassenobjekt" (Modul?) ansprechen kann?

Danke, Carl
 

Offline PhilS

  • Global Moderator
  • Access-Meister
  • *****
  • Beiträge: 577
    • Tipps zu Access, VBA, SQL und Co.
Re: Prozeduren mehrfach nutzen
« Antwort #3 am: Juni 14, 2019, 09:17:34 »
Legt man dann die Prozeduren unter einem eigenen Modul an?
Das kommt darauf an...
Wofür ist die jeweilige Prozedur "zuständig"?

Eine Prozedur die sehr eng an ein bestimmtest Formular gebunden ist, sollte im Klassenmodul dieses Formulars bleiben. Sie ist dann nur verfügbar, wenn dieses Form auch geladen ist. Sie hat aber unmittelbaren Zugriff auf die Eigenschaften und Steuerelemente des jeweiligen Formulars.

Eine Prozedur in einem allgemeinen Modul ist immer und von überall erreichbar. Die hat aber keinen direkten Zugriff auf die Eigenschaften und Steuerelemente der jeweiligen Formulare. Diese (oder das Formular selbst) müssen (sollten) bei Bedarf als Argumente an die Prozedur übergeben werden


Kannst Du mir bitte noch sagen, wie ich eine Prozedur in einem anderen "Klassenobjekt" (Modul?) ansprechen kann?
Hier musst du zwischen Allgemeinen Module, die du im VBA-Projektexplorer unter "Module" siehst, und Klassenmodulen, im VBA-Projektexplorer unter "Klassenmodule" oder die Module von Formularen und Berichten, unterscheiden.

Prozeduren in Allgemeinen Modulen sind immer und von Überall zu erreichen. Der Aufruf einer Prozedur aus einem solchen funktioniert auch genauso wie oben gezeigt.

Code in Klassenmodulen bezieht sich immer auf eine Instanz, d.h. ein Objekt, der jeweiligen Klassen. Von innerhalb der Klassen erfolgt der Aufruf auch genauso wie gezeigt. Von ausserhalb brauchst du immer einen Verweis auf die Objektinstanz der Klasse und rufst dann ihre Methoden (Prozeduren und Funktionen) auf.

Objektinstanz.Prozedurname()

Beachte auch die Sichtbarkeit der Prozeduren. Private Prozeduren sind nur innerhalb des Moduls in dem sie deklariert wurden sichtbar. Public Prozeduren sind auch von aussen sichtbar,


Zum Einstieg verweise ich auch noch auf das VBA-Tutorial von Martin Asal.
 

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 458
Re: Prozeduren mehrfach nutzen
« Antwort #4 am: Juni 14, 2019, 12:19:27 »
Vielen Dank, das hilft mir gut weiter. Ich probier' das jetzt mal so nach und nach durch. :-)

Carl
 

 

VBA Prozeduren einsetzen aber wo ?

Begonnen von samuraiBoard Access Programmierung

Antworten: 30
Aufrufe: 12251
Letzter Beitrag August 20, 2012, 08:03:08
von 69bruno