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.2 Anzeige der Prozedurliste

17.6.3 Anzeige des Codes einer Prozedur

Nach der Auswahl des Moduls und der Prozedur bleibt nur noch ihre Anzeige im dafür vorgesehenen Textfeld. Die Ausgabe wird durch das Auswählen einer Prozedur aus dem Kombinationsfeld cboProcedures angestoßen. Die verantwortliche Ereignisprozedur aus folgendem Listing ermittelt den Quellcode der Prozedur mit der Funktion GetCode, die drei Parameter erwartet: den Modulindex, den Prozedurnamen sowie den Prozedurtyp. Alle Werte lassen sich aus den beiden Kombinationsfeldern ermitteln.

Private Sub cboProcedures_AfterUpdate()

    Dim objVBE As clsVBE
    Dim strCode As String

    Set objVBE = New clsVBE

    'Einlesen des Codes der ausgewählten Prozedur
    strCode = objVBE.GetCode(Me.cboModules, _
        Me.cboProcedures, Me.cboProcedures.Column(2))

    'Zuweisen des Codes an das Textfeld txtCode
    Me.txtCode = strCode

    Set objVBE = Nothing

End Sub

Listing 17.14: Anzeigen des Codes einer Prozedur

Die Funktion GetCode verarbeitet ihre Eingangsparameter folgendermaßen: Zunächst erstellt die Funktion eine Objektvariable mit einem Verweis auf das CodeModule-Objekt des Elements der VBComponents-Auflistung mit dem im ersten Parameter angegebenen Index.

Mit dem Prozedurnamen und -typ, die mit den übrigen Eingangsparametern übergeben wurden, ermittelt die Funktion dann drei Zeilennummern:

  • die Nummer der Zeile, in der die angegebene Prozedur beginnt (das ist, wie bereits weiter oben beschrieben, die erste Zeile nach der vorherigen Prozedur beziehungsweise des Deklarationsbereichs)
  • die Nummer der Zeile, die die Prozedurdeklaration enthält
  • die Nummer der letzten Zeile der Prozedur (das ist die Zeile mit dem End-Schlüsselwort)
  • Mit diesen Informationen und der Lines-Funktion lässt sich der komplette Prozedurtext leicht auslesen.

    Public Function GetCode(intModuleID As Integer, strProcedure As String, _
        lngProcedureType As Long)

        Dim objCodeModule As CodeModule
        Dim intFirstLine As Integer
        Dim intStartLine As Integer
        Dim intLastLine As Integer
        Dim strCode As String

        'Objektvariable mit Verweis auf das Codemodul erstellen
        Set objCodeModule = _
            VBE.ActiveVBProject.VBComponents.Item(intModuleID).CodeModule

        'Erste Zeile der Prozedur ermitteln
        intStartLine = objCodeModule.ProcStartLine(strProcedure, _
            lngProcedureType)

        'Zeile der Prozedurdeklaration ermitteln
        intFirstLine = objCodeModule.ProcBodyLine(strProcedure, _
            lngProcedureType)

        'Letzte Zeile der Prozedur ermitteln
        intLastLine = intStartLine + objCodeModule.ProcCountLines _
            (strProcedure, lngProcedureType) - 1

        'Prozedur auslesen ...
        strCode = objCodeModule.Lines(intFirstLine, _
            intLastLine - intFirstLine + 1)

        '... und zurückgeben
        GetCode = strCode

    End Function

    Listing 17.15: Auslesen des Codes einer konkreten Prozedur

    Nächster Abschnitt:

    17.7 Manipulieren des Quell codes

    © 2006-2008 André Minhorst Alle Rechte vorbehalten.