skid
Goto Top

Modul aufrufen

Hi,

habe ein Skript das mittlerweile ziemlich groß und unübersichtlich geworden ist.

Also hab ich mir gedacht ich erstelle ein paar Module (ich kenne mich mit Modulen überhaupt nicht aus!) um Befehle die immer wieder, in veränderder Form, vorkommen "auszulagern".

Ein Modul konnte ich zwar erstellen aber ich bekomme es einfach nicht hin das ich es aufrufe!

Hier ein Beispiel wie ich es gemacht habe:

In meiner Form ist z.B. diese Zeile

If Text1 = "" Then  

Module1

End If


In dem Modul diese:

Public Sub Module1()

MsgBox "Bitte geben Sie den Vornamen ein!", vbInformation  
Text1.SetFocus

End Sub

Sobald ich auf eine Schaltfläche klicke und das Feld Text1 leer ist soll das Modul gestartet werden so das die Meldung kommt - das ich eigentlich alles face-wink

Vielleicht kann mir ja einer sagen wie das geht ?!


Gruß
SKID

Content-ID: 49501

Url: https://administrator.de/contentid/49501

Ausgedruckt am: 05.11.2024 um 19:11 Uhr

wakko
wakko 22.01.2007 um 15:35:53 Uhr
Goto Top
Moin,
sach doch mal, welche IDE du benutzt, das könnte helfen...
Das Text1.setFocus ist problematisch, da das Modul die Form nicht automatisch kennt, da sollte noch ein "Form1 ." (bzw. "frmMain") davor.
VBA:
Module fügst du in dein Projekt ein, indem du die Funktion "Datei importieren..." (bei vba) aus dem Kontextmenü (=rechtsklick) des Projektbereichs.
In VB6:
rechtsklick auf den Projektexplorer (wo "Form1" steht) -> hinzufügen -> Datei hinzufügen
(In allen anderen IDE's ähnlich...)
Dann jeweils auf das Modul verweisen, fertisch...

Gruß,
Henrik
Guenni
Guenni 22.01.2007 um 19:49:39 Uhr
Goto Top
@skid

Hi,

da du in der Rubrik VBA schreibst, ein Beispiel mit Excel:

Private Sub CommandButton1_Click()
If TextBox1.Text = "" Then  
 Modul1
End If
End Sub

Private Sub Modul1()
MsgBox "Bitte Vornamen eingeben", vbInformation  
TextBox1.SetFocus
End Sub

Dieser Code wird komplett in der Form gespeichert, und nicht
in Module.

In Module werden Subs und Funktionen gespeichert, die im
Datenblatt selber oder als Makro aufgerufen werden.

Grüße
Günni

P.S.: Die letzte Behauptung stammt jetzt von mir, da ich
es nicht anders gelernt habe. Wenn jemand mehr weiß....
Desperado
Desperado 22.01.2007 um 20:03:23 Uhr
Goto Top
wenn du textboxen immer wieder abrufen willst auf deren wert, dann machst du ins modul:

public function checktextvalue(mytextbox as textbox, mymessage as string) as boolean

if mytextbox.text = "" then
checktextvalue = false
msgbox mymessage
mytextbox.setfocus
else
checktextvalue = true
end function

und in deine form:

Sub Command1_Click()

If checktextvalue(textbox1, "bitte vornamen eingeben") = False then exit sub

End Sub

Grüsse, Desperado
skid
skid 23.01.2007 um 10:42:29 Uhr
Goto Top
Hi,

dank Euch für die Hilfe.

Habe es mittlerweile auch geschafft so ein Modul aufzurufen.
Nur habe ich gemerkt das nicht alles klappt wie ich es mir vorgestellt habe.

Ich habe unter der ersten Textbox noch ein paar weitere.
Die Meldung wenn die erste leer ist kommt schon aber auch gleich die Meldung für die zweite Textbox und der Cursor steht dann in der zweiten.

Ich habe in meiner Form z.B. einen Abschnitt in dem anhand von den ersten 3 Stellen des Benutzernamens geprüft wird um was für einen User es nich handelt, dann darauf hin eine bestimmte Textdatei ausgelesen wird wo z.B. die Standardgruppen stehen die dem Benutzuer zugewiesen werden sollen.

In der Form funktioniert alles prima aber wenn ich diesen Teil in ein Modul packe und es dann aufrufe funktioniert es nicht mehr.

Da scheint es doch unterschiede zu geben was man in so ein Modul schreibt oder aber ich habe noch nicht denn Sinn und Zweck von Modulen verstanden face-wink

Gruß
SKID
Desperado
Desperado 27.01.2007 um 14:20:35 Uhr
Goto Top
zum 1.: dann hast du das exit sub vergessen