ich hoffe ich bin für solche Fragen im richtigen Forum: ich importiere mehrere Tabellen aus einer Access-Datenbank per ADO. Und zwar per SELECT * FROM DB_Query1. DB_Query1 ist dabei eine in der Access-Datenbank erstellte Abfrage, die aus diversen Tabellen Daten zusammenfasst und dabei auch diverse Operationen in einigen Spalten durchführt. Das alles funktioniert soweit ganz gut. Verwende ich jedoch in der Access-Abfrage Funktionen wie Replace oder NZ, erhalte ich bei Ausführung des Excel-Makros einen Laufzeitfehler 80040e14: Undefinierte Funktion. Anscheinend kennt ADO diese Funktionen nicht. Gibt es hierfür eine Lösung oder habe ich da einfach Pech gehabt? Bisher habe ich per Google nur alte Beiträge gefunden bzw. keine Lösung gefunden...
Ich habe folgende Verweise im Makroeditor eingestellt:
VBA
MS Excel 12.0 Object Library
Ole Automation
MS Access 12.0 Object Library
MS Office 12.0 Object Library
MS ActiveX Data Objects 2.8 Library
MS ADO Ext. 2.8 for DDL and Security
Und das ist der vereinfachte Code:
Sub Import()
Dim wksExcel As Worksheet
Dim strDBFile As String
Dim AccessCnn As New ADODB.Connection, AccessRs As New ADODB.Recordset, AccessSQL As String
strDBFile = ThisWorkbook.Path & "\Access DB.accdb"
AccessCnn.Provider = "Microsoft.ACE.OLEDB.12.0"
AccessCnn.Open strDBFile
Set wksExcel = ThisWorkbook.Worksheets("Lala")
AccessSQL = "SELECT * FROM [DB_Query1]"
AccessRs.Open AccessSQL, AccessCnn, adOpenDynamic, adLockOptimistic
wksExcel.Cells(15, 1).CopyFromRecordset AccessRs
AccessRs.Close
Set AccessRs = Nothing
End Sub
Viele Grüße