Frage von mali1234, 21

Wann muss ich in der "Form" unter VBA programmieren und wann nutze ich ein Modul?

Wenn ich im Entwicklungsfenster von VBA in Access bin, so kann ich links im Projekt-Explorer auf die Form klicken und dort code eingeben. Ich kann allerdings auch ein neues Modul erstellen und dann programmieren. Soweit ich weiß, gibt es private und public subs.

Wann nutze ich die Form und wann nutze ich das Modul um hinein zu programmieren?

Antwort
von Karaseck, 13

Der Quellcode steht immer in einem Sub in einem Modul. Die UserForm ist nur das Fenster, oder Formular welches der Anwender zu sehen bekommt.

Im Sub rufst du eine UserForm auf und definierst was mit den Daten geschehen soll. 

Ich hoffe, daß das verständlich war.

Kommentar von mali1234 ,

Du hast nicht ganz recht, scheint mir. Wenn Du eine Form zusammenklickst und dann alt+F11 drückst, dann kannst du code eingeben. Dann ist allerdings im Explorer noch kein Modul angelegt worden.

Du hast dann noch die Möglichkeit ein neues Modul im Explorer anzulegen. Doch was ist der Unterschied?

Kommentar von Karaseck ,

Ich habe bisher immer ausschließlich mit Modulen gearbeitet und von dort aus alles Benötigte aufgerufen, Programmaufrufe, Vergleiche, Berechnungen, usw.. Ich denke, daß du auf diese Weise flexibler bleibst. 100% kann ich es aber auch nicht sagen.

Antwort
von PWolff, 10

Es geht im Prinzip beides.

Auf Elemente der Form kannst du natürlich von der Form aus leichter zugreifen.

Elemente, die der Form gehören, sind besser vor versehentlicher Veränderung von anderen Forms aus geschützt.

Die Hintergründe sind etwas komplizierter.

Eine Form ist eine instanziierbare Klasse mit grafischer Oberfläche, ein Modul ist eine statische Klasse mit nur einer einzigen Instanz.

Kommentar von mali1234 ,

Bedeutet das, dass ein Modul nur eine Sub-Prozedur beinhalten kann, während eine Form mehrere haben kann? Ich verstehe nicht ganz den Unterschied, warum ich die Möglichkeit habe sowohl unter der Form zu programmieren als auch unter einem Modul. Würde eins nicht reichen?

Kommentar von PWolff ,

Ein Modul kann ebenso wie eine Form beliebig viele Prozeduren (Subs und Funktionen) enthalten.

Der wichtigste Unterschied besteht darin, dass ein Modul dem Programm immer zur Verfügung steht, aber nur ein einziges Mal, während man von einer Form leicht mehrere Kopien herstellen kann.

Der zweitwichtigste Unterschied ist, dass eine Form eine grafische Oberfläche hat und damit sowohl Daten visuell darstellen kann als auch auf Tastatur- und Mausereignisse reagieren kann.

Was beim Programmieren von Visual Basic erst einmal wie eine Form aussieht, ist eigentlich eine Vorlage für eine Form, von der man so viele Exemplare herstellen lassen kann, wie der Speicherplatz hergibt.

Damit es für Anfänger nicht zu kompliziert wird, stellt Visual Basic von jeder Formvorlage ein Exemplar bereit, das genauso heißt wie die Vorlage. Solange du nur diese benutzt, ist der erste Unterschied erst einmal unwichtig.

Wenn du später einmal mit größeren Projekten zu tun bekommst, bei der man mit vielen sehr ähnlichen Objekten zu tun hat, wird dir der Unterschied klar werden.

Bis dahin merk dir einfach, dass eine Form gut ist, wenn man etwas zum Anzeigen und Anklicken haben will, und ein Modul gut ist, wenn man etwas haben will, das überall im Projekt problemlos zur Verfügung steht.

Keine passende Antwort gefunden?

Fragen Sie die Community