Rubrik: Datenbanken · DAO | VB-Versionen: VB5, VB6 | 19.12.05 |
Access-Tabelle nach Excel exportieren (DAO) Das Exportieren einer Access-Tabelle in eine Excel-Tabelle ist mit DAO keine große Sache. | ||
Autor: Dieter Otter | Bewertung: | Views: 38.136 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Das Exportieren einer Access-Tabelle in eine Excel-Tabelle ist mit DAO keine große Sache, wie nachfolgende Funktion zeigt.
Die Funktion ExportXLS erwartet hierbei folgende Parameter:
- sDBFile: Pfad und Name der Access-Datenbank
- sTable: Name der Access-Tabelle, deren Inhalt exportiert werden soll
- sExcelFile: Pfad und Name der Exceldatei
- sWorksheet: Optional. Name der Excel-Tabelle
- sPassword: Optional. Passwort, falls die Access-Datenbank durch ein Passwort geschützt ist
- sExcelVersion: Optional. Version der Exceldatei. Standardvorgabe ist "8.0", was Excel 97 entspricht
- bDeleteIfExists: Optional. Exceldatei vorher löschen, falls diese bereits existiert
' Access-Tabelle nach Excel exportieren Public Function ExportXLS(ByVal sDBFile As String, _ ByVal sTable As String, _ ByVal sExcelFile As String, _ Optional ByVal sWorksheet As String = "WorkSheet1", _ Optional ByVal sPassword As String = "", _ Optional ByVal sExcelVersion As String = "8.0", _ Optional ByVal bDeleteIfExists As Boolean = True) As Boolean Dim oDB As DAO.Database ' Fehlerbehandlung aktivieren On Error GoTo ErrHandler ' Datenbank öffnen If Len(sPassword) > 0 Then ' mit Passwortschutz öffnen Set oDB = DBEngine.OpenDatabase(sDBFile, False, False, ";pwd=" + sPassword) Else Set oDB = DBEngine.OpenDatabase(sDBFile, False, False) End If ' GGf. Excel-Datei vorher löschen, falls vorhanden If Len(Dir(sExcelFile)) > 0 And bDeleteIfExists Then Kill sExcelFile ' alle Datensätze der Access-Tabelle in die Excel-Tabelle exportieren oDB.Execute "SELECT * INTO [Excel " & sExcelVersion & ";" & _ "DATABASE=" & sExcelFile & "]." & "[" & sWorksheet & "] " & _ "FROM " & "[" & sTable & "]" ' Datenbank schließen und Objekt zerstören oDB.Close Set oDB = Nothing On Error GoTo 0 ExportXLS = True Exit Function ErrHandler: MsgBox "Fehler beim Export der Tabelle nach Excel" & vbCrLf & _ CStr(Err.Number) & " " & Err.Description ' Datenbank-Objekt schließen und zerstören If Not oDB Is Nothing Then oDB.Close Set oDB = Nothing End If End Function
Beispiel für den Aufruf:
Dim bResult As Boolean bResult = ExportXLS(App.Path & "\Kunden.mdb", "Kundendaten", "d:\kunden.xls")