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-Key: 49501

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

Printed on: April 16, 2024 at 13:04 o'clock

Member: wakko
wakko Jan 22, 2007 at 14:35:53 (UTC)
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
Member: Guenni
Guenni Jan 22, 2007 at 18:49:39 (UTC)
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ß....
Member: Desperado
Desperado Jan 22, 2007 at 19:03:23 (UTC)
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
Member: skid
skid Jan 23, 2007 at 09:42:29 (UTC)
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
Member: Desperado
Desperado Jan 27, 2007 at 13:20:35 (UTC)
Goto Top
zum 1.: dann hast du das exit sub vergessen