Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1184to1188
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige