Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: datekk am April 07, 2016, 21:53:35

Titel: Formular-Sub in Modul auslagern
Beitrag von: datekk am April 07, 2016, 21:53:35
Hallo,

ich möchte in mehreren Formularen so ein ähnliche Sub nutzen:

Private Sub Form_Load()
Dim ctl As Control
For Each ctl In Me.Controls
ctl.Locked = True
Next
End Sub


Nun möchte ich aber sehr gern dies in ein Modul auslagern und beispielsweise einfach über den Call Befehl aufrufen. Mein Problem ist, dass ich mich mit den Variablentypen nicht auskenne und ich auch nirgends vernünftige Variabel-Programmbeispiele finde die man sich mal anschauen kann und die das erklären.

Problem bei den Modulen ist ja, dass hier der me.controls Befehl nicht ausgeübt werden kann. Dieses Me.Controls muss also sicher über eine öffenliche Variable an das Modul transferiert werden um dort als Variable ausgeführt werden zu können.

Ziel ist, dass ich einfach von beliebigen Formularen aus das Modul aufrufen möchte und dadurch alle Felder gesperrt werden sollen ohne jedesmal den gleichen Code in das Formular selbst schreiben zu müssen.

PS: Woher bekomme ich eine gute Anleitung, wie man mit Variablen umgeht. Man kann ja ganze Datenbanken in Variablen darstellen, aber ich brauche da eine gute Einführung..

Danke  :-*
datekk

Titel: Re: Formular-Sub in Modul auslagern
Beitrag von: DF6GL am April 07, 2016, 22:07:00
Hallo,

um diese lokale Prozedur "global" zur Verfügung zu stellen , muss der Code zunächst in ein Standard-Modul platziert und als Public (mit "vernünftigen" Namen) deklariert werden.

Die Prozeduren (Funktionen und Subs) haben Argumente (Variablen-Liste in der Kopfzeile mit Datentyp-Deklaration) , die als "Verbindungskanäle" zwischen dem Prozedurcode und der aufrufenden Codezeile fugieren (dort "Parameter" genannt).



ZitatPublic Sub LockControls(MyForm as Form)  ' Sub akzepiert  ein Form-Objekt
Dim ctl As Control
For Each ctl In MyForm.Controls
ctl.Locked = True
Next
End Sub


und Aufruf:

Sub Form_Load()
Call LockControls (Me)  ' hier wir das akt. Form-Objekt als Parameter mitgegeben
End Sub
In dieser Fu
Titel: Re: Formular-Sub in Modul auslagern
Beitrag von: MaggieMay am April 07, 2016, 22:15:28
Hallo,

dazu möchte ich zu bedenken geben, dass nicht jedes Steuerelement die Eigenschaft "Locked" hat. Es müsste also entweder die Abfrage des ControlType oder eine Fehlerbehandlung hinzugefügt werden.
Titel: Re: Formular-Sub in Modul auslagern
Beitrag von: datekk am April 08, 2016, 11:24:32
Ok danke. Da komme ich erstmal weiter. Aber eine Frage, warum muss vor der Sub "Public" stehen. Wenn ich es weg lasse, funktioniert es auch.
Titel: Re: Formular-Sub in Modul auslagern
Beitrag von: MaggieMay am April 08, 2016, 12:08:11
Hi,

Public ist die Default-Einstellung.