Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Import per ADO aus Access

Forumthread: Import per ADO aus Access

Import per ADO aus Access
Boris
Hallo,
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
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Import per ADO aus Access
06.11.2010 06:50:53
Luschi
Hallo Boris,
weder mit Excel 2007 noch mit Excel 2010 gelingt es mir, auf Access-Abfragen zuzugreifen, in denen die NZ() bzw. Replace-Funktion vorhanden sind. Werde hoch mal ein bischen testen und dann berichten.
Vielleicht hilft DAO?!
Gruß von Luschi
aus klein-Paris
AW: Import per ADO aus Access
06.11.2010 08:44:23
Luschi
Hallo Boris,
mit der NZ()-Funktion klappt der Zugriff weder per DAO noch ADO. Hier hilft nur die IIf-Funktion;
siehe: http://allenbrowne.com/QueryPerfIssue.html#Nz
Für Replace() bin ich noch am suchen - Was für ein Fortschritt!!!
Wenn ich daran denke, was M$ für einen Wirbel gemacht hat, als mit Office 2000 ADO eingeführt wurde und diese Methode als das allein Seligmachende verkündete. Mit Office 2007 steht plötzlich DAO wieder ganz groß im Kurs. Machmal denke ich, M$ will die Vba-Programmierer vergraulen und zu VB.Net umerziehen - dann mache ich doch wieder JAVA.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Import per ADO aus Access
08.11.2010 09:18:58
Boris
Hallo Luschi,
das klingt wirklich sensationell (ironisch gemeint). Es stellen sich nur für mich, als Nicht-ITler, folgende Fragen:
1) Wie du in meinem Code siehst benutze ich ACE, da ich Excel 2007 verwende und meine Makros mit JET nicht funktioniert haben. Ist das so korrekt?
2) Soll ich lieber DAO verwenden? Was ist schneller: ADO oder DAO?
3) Eigentlich verstehe ich das Problem nicht, da ich per ADO per Select * nur die komplette Access-Abfrage kopieren möchte, die ja in Access erstellt wurde und dort auch funktioniert...?
4) Wie finde ich vorher heraus, welche Funktionen nicht funktionieren? Gibt es da eine Übersicht? Ist ziemlich nervig, wenn man Zeit dafür verwendet in Access die Abfrage zu gestalten, um dann erst später herauszufinden, dass man die Befehle so gar nicht verwenden kann...
Danke auf jeden Fall für den Allen-Browne-Link, sieht sehr nützlich für mich aus.
Viele Grüße
Boris
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige