Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

17.6 Beispielanwendung: Codeviewer

17.6.1 Anzeige der Module

Das Kombinationsfeld zur Anzeige der Module besitzt als Datensatzherkunft eine Wertliste, die aus einer durch Semikolons getrennten Auflistung des Index und des Namens der einzelnen Module einschließlich Angabe der Modulart besteht. Die Datensatzherkunft sieht also etwa wie folgt aus:

1;'Modul1 (Standardmodul)';
2;'Modul2 (Klassenmodul)';
3;'Modul3 (Formular-/Berichtsmodul)'

Das Kombinationsfeld soll nur die Modulnamen, nicht aber den Index anzeigen; daher stellen Sie die Werte der Eigenschaften Spaltenanzahl und Spaltenbreiten auf die Werte 2 beziehungsweise 0cm ein. Letzterer sorgt dafür, dass der jeweils erste Wert der Zeile mit der Spaltenbreite 0cm, also nicht sichtbar, und der zweite Wert über die volle Spaltenbreite angezeigt wird.

Das Füllen des Kombinationsfeldes erfolgt in der Ereigniseigenschaft Beim Anzeigen des Formulars. Die entsprechende Prozedur enthält folgenden Code:

Private Sub Form_Current()

    Dim strModules As String
    Dim objVBE As clsVBE
    Set objVBE = New clsVBE

    'Module einlesen
    strModules = objVBE.GetModulesCSV

    'Herkunftsart des Kombinationsfeldes auf Wertliste einstellen
    Me.cboModules.RowSourceType = "Value List"

    'Zuweisen der Wertliste an die Datensatzherkunft
    Me.cboModules.RowSource = strModules

End Sub

Listing 17.10: Diese Prozedur füllt das erste Kombinationsfeld mit der Modulliste

Die Prozedur instanziert ein Objekt der Klasse clsVBE und verwendet deren Funktion GetModulesCSV, um die Liste der Module des Codeprojekts einzulesen. Die Funktion ermittelt die Anzahl der enthaltenen Module und durchläuft diese anschließend nacheinander. Dabei erstellt es eine Objektvariable mit einem Verweis auf das entsprechende Element der VBComponents-Auflistung des aktuellen Projekts. Das Ermitteln des Namens erfolgt über die Name-Eigenschaft des Objekts, und eine dem Modultyp entsprechende Konstante lässt sich mit Hilfe der Type-Eigenschaft herausfinden. Da diese Konstanten nicht besonders benutzerfreundlich sind, weist die Funktion der String-Variablen strModuleType einen der Ausdrücke Standardmodul, Klassenmodul oder Formular-/Berichtsmodul zu. Schließlich fügt die Funktion den Index, den Namen und den Typ an die String-Variable strModules an.

Public Function GetModulesCSV()

    Dim intVBComponentsCount As Integer
    Dim i As Integer
    Dim objVBComponent As VBComponent
    Dim strModuleName As String
    Dim strModuleType As String
    Dim strModules As String

    'Anzahl der Module ermitteln
    intVBComponentsCount = VBE.ActiveVBProject.VBComponents.Count

    'Alle Module durchlaufen und ...
    For i = 1 To intVBComponentsCount

        '... per Objektvariable auf das aktuelle Modul verweisen ...
        Set objVBComponent = VBE.ActiveVBProject.VBComponents.Item(i)

        '... den Modulnamen lesen ...
        strModuleName = objVBComponent.Name
        '... und den Typ ermitteln und übersetzen
        Select Case objVBComponent.Type
            Case vbext_ct_StdModule
                strModuleType = "Standardmodul"
            Case vbext_ct_ClassModule
                strModuleType = "Klassenmodul"
            Case vbext_ct_Document
                strModuleType = "Formular-/Berichtsmodul"
            Case vbext_ct_MSForm
                strModuletype = "MSForms Userform-Modul"
        End Select

        'Informationen des aktuellen Moduls zur Liste hinzufügen
        strModules = strModules & i & ";"
        strModules = strModules & "'" & strModuleName _
            & " (" & strModuleType & ")';"
    Next i

    'Zuweisen des Ergebnisses an den Rückgabewert
    GetModulesCSV = strModules

End Function

Listing 17.11: Erzeugen einer Liste aller Module

Nächster Abschnitt:

17.6.2 Anzeige der Prozedurliste

© 2006-2008 André Minhorst Alle Rechte vorbehalten.