Add in and find out

Einige Auflistungen fehlen

Bei den Formularen gibt es bis Access 97 keine entsprechende Auflistung zu TableDefs oder QueryDefs, erst ab Access2000 liefert das CurrentProject- Objekt mit seiner AllForms-Auflistung die gewünschten Namen aller Formulare. Bis Access 97 müssen Sie etwas mühsamer die versteckte MSysOb jects-Tabelle auslesen, was hier thematisch zu weit führen würde.

Die Forms-Auflistung würde Ihnen hier übrigens nicht weiterhelfen, denn sie zeigt ja nur die geöffneten Formulare an, statt aller.

Da die Formulare schneller und – weil ohne Codeausführung – sicherer im Entwurfsmodus geöffnet werden, muss der Laufzeitfehler abgefangen werden, wenn frmStart selbst analysiert werden soll. Schließlich kann das Programm während seiner eigenen Ausführung nicht in den Entwurfsmodus umschalten.

Sobald diese Datenbank als Add-In aufgerufen wird, befindet sich frmStart ohnehin nicht mehr in der aktuellen Datenbank und deshalb auch nicht in CurrentProject.AllForms, aber während der Entwicklungszeit schon noch.

Wenn Sie es noch um die Schaltflächen btn- Schliessen und btnInfo mit dem Code aus Listing 2 erweitern, ist das Formular vorerst komplett. Das zweite Formular frmInfo fehlt zwar noch, aber das können Sie später nachreichen.

Private Sub btnSchliessen_Click()
DoCmd.Close acForm, Me.Name
End Sub
Private Sub btnInfo_Click()
DoCmd.OpenForm "frmInfo", , , , , acDialog
End Sub

Dieses Formular können Sie nun direkt ausprobieren, es sollte so aussehen wie in Bild 1.

Bild 1: Das Analyseformular.
Bild 1: Das Analyseformular.

Jetzt brauchen Sie für das zukünftige Add-In nur noch eine VBA-Funktion aus Listing 3, um frmStart anzuzeigen. Bei Add-Ins kann an den Untermenü-Eintrag nämlich nur eine VBA-Funktion gebunden werden.

Function Start_Prozedur()
DoCmd.OpenForm "frmStart", acNormal, , , , acDialog
End Function