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!

15.9 Schnittstellen und Vererbung

15.9.1 Beispiel für den Einsatz der Schnittstellenvererbung

Stellen Sie sich einmal vor, Sie müssten regelmäßig Daten aus verschiedenen Quellen in Ihre Datenbank importieren. Zum Steuern des Importvorgangs - also etwa zur Auswahl der Quelldatei und des für den Import zu verwendenden Algorithmus - benutzen Sie ein Formular wie in Abbildung 15.13.

Abbildung 15.13: Steuerung des Imports aus unterschiedlichen Quellen

Hinter der Schaltfläche Importieren verbirgt sich etwa folgender Code:

Private Sub cmdImportieren_Click()
    Select Case Me.ogrImportart
        Case 1 'Text (.txt)
            'Import der Daten aus der Textdatei
            '[... viele weitere Zeilen Code]
            MsgBox "Import aus der Textdatei ist erfolgt."
        Case 2 'XML (.xml)
            'Import der Daten aus der XML-Datei
            '[... viele weitere Zeilen Code]
            MsgBox "Import aus der XML-Datei ist erfolgt."
        Case 3 'Access-Tabelle (.accdb)
            'Import aus der Access-Tabelle
            '[... viele weitere Zeilen Code]
            MsgBox "Import aus der Access-Tabelle ist erfolgt."
        Case 4 'Excel-Tabelle (.xls)
            'Import aus der Excel-Tabelle
            '[... viele weitere Zeilen Code]
            MsgBox "Import aus der Excel-Tabelle ist erfolgt."
    End Select
End Sub

Listing 15.36: Aufbau des Importvorgangs auf prozedurale Art

Diese Vorgehensweise dürfte durchaus gängig sein. Der erste Schritt zu einer objektorientierten Variante ist die Erstellung je einer eigenen Klasse für die einzelnen Import-Funktionen. Damit nimmt man schon einmal einige Funktionalität aus der GUI-Schicht der Anwendung - also dem Formular und dessen Klassenmodul - heraus. Die durch die Schaltfläche Importieren ausgelöste Prozedur wertet jetzt nur noch die Benutzereingaben aus und lässt das entsprechende Objekt den Rest erledigen:

Private Sub cmdImportieren_Click()

    Dim strDateiname As String

    strDateiname = Me!txtDateiname

    Select Case Me.ogrImportart
        Case 1 'Text (.txt)
            Dim objImport_txt As clsImport_txt
            Set objImport_txt = New clsImport_txt
            If objImport_txt.Import(strDateiname) = True Then
                MsgBox "Import aus der Textdatei ist erfolgt."
            End If
        Case 2 'XML (.xml)
            Dim objImport_xml As clsImport_xml
            Set objImport_xml = New clsImport_xml
            If objImport_xml.Import(strDateiname) = True Then
                MsgBox "Import aus der XML-Datei ist erfolgt."
            End If
        Case 3 'Access-Tabelle (.accdb)
            Dim objImport_mdb As clsImport_mdb
            Set objImport_mdb = New clsImport_mdb
            If objImport_mdb.Import(strDateiname) = True Then
                MsgBox "Import aus der Access-Tabelle ist erfolgt."
            End If
        Case 4 'Excel-Tabelle (.xls)
            Dim objImport_xls As clsImport_xls
            Set objImport_xls = New clsImport_xls
            If objImport_xls.Import(strDateiname) = True Then
                MsgBox "Import aus der Excel-Tabelle ist erfolgt."
            End If
    End Select

End Sub

Listing 15.37: Diese Variante des Imports basiert auf der Verwendung unterschiedlicher Klassen

Die Klassenmodule der verwendeten Objekte haben alle eine Methode namens Import. Da je nach Import-Art jeweils ein Objekt verwendet wird, könnte die Import-Funktionalität auch in Methoden mit anders lautenden Namen untergebracht werden. Sie werden allerdings gleich sehen, dass die Auswahl gleicher Methodennamen durchaus sinnvoll ist. Nachfolgendes Listing zeigt den Inhalt eines Klassenmoduls am Beispiel clsImport_mdb:

Option Compare Database
Option Explicit

Public Function Import(strDateiname As String)
    'Import aus der Access-Tabelle
    '[... viele weitere Zeilen Code]
    Import = True
End Function

Listing 15.38: Aussehen eines der Import-Klassenmodule

Nächster Abschnitt:

15.9.2 Vereinheitlichen per Schnittstellenvererbung

© 2006-2008 André Minhorst Alle Rechte vorbehalten.