Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
564to568
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
564to568
564to568
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Access Daten Import mit VBA

Access Daten Import mit VBA
11.02.2005 10:30:36
Dirk
Hallo,
ich habe folgendes Problem:
Daten, die in Access erstellt werden, müssen in Excel ausgewertet werden. Der Name der Access-Datei ändert sich, die Struktur aber nicht.
Ich habe ein Makro (s.u.) erstellt (aufgezeichnet und anschließend editiert), was den Dateinamen mit GetOpenFile in eine Variable liest und diese Variable dann bei dem Importvorgang überall einsetzt.
Dummerweise kommt immer die Fehlermeldung, dass die Datei (die in der Variable steht / Kontrolle durch MsgBox) nicht gefunden wurde. Es wird sogar eine Alternativdatei angeboten, die den gleichen Namen trägt.
Ich komm nicht weiter ... bitte helft mir!
----------------------
Das Makro: (Dateivariable ist 'datei')
______________________

Sub Import()
datei = Application.GetOpenFilename
MsgBox datei
With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=datei;Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLED" _
, _
"B:Database Password="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:G" _
, _
"lobal Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=F" _
, _
"alse;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False" _
), Destination:=Range("A1"))
.CommandType = xlCmdTable
.CommandText = Array("Drops")
.Name = "Daten"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = datei
.Refresh BackgroundQuery:=False
End With
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Access Daten Import mit VBA
11.02.2005 11:04:01
Heinz
Hallo Dirk,
statt
...Data Source=datei;Mode...
muss es heißen:
...Data Source=" & datei & ";Mode...
Gruß
Heinz
AW: Access Daten Import mit VBA
11.02.2005 11:15:40
Dirk
Hallo und Danke!
Leider kommt jetzt die Fehlermeldung "Typen unverträglich". Ich habe die Variable Datei als Variant und auch als String definiert .... hat aber leider nichts gebracht :-(
AW: Access Daten Import mit VBA
11.02.2005 11:25:40
Heinz
Hallo Dirk,
ich habe meine Abfragen mit ODBC gemacht. Da funktioniert das so:

Sub Abfrage()
Dim wsE As Worksheet, wsA As Worksheet, UZ$, datei$, datei2$
Application.ScreenUpdating = False
datei = "C:\Programme\Microsoft Office\Office\Samples\Nordwind.mdb"
datei2 = datei & ".mdb"
With wsA.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Microsoft Access-Datenbank;DBQ=" & datei2 & ";DefaultDir=C:\Programme\Microsoft " _
), Array( _
"Office\Office\Samples;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;" _
)), Destination:=wsA.Range("A1"))
.CommandText = Array( _
"SELECT Lieferanten.`Lieferanten-Nr`, Lieferanten.Firma, Lieferanten.Kontaktperson, Lieferanten.Position, Lieferanten.Straße, Lieferanten.Ort, Lieferanten.Region, Lieferanten.PLZ, Lieferanten.Land, Lie" _
, _
"feranten.Telefon" & Chr(13) & "" & Chr(10) & "FROM `" & datei & "`.Lieferanten Lieferanten" & Chr(13) & "" & Chr(10) & "WHERE (Lieferanten.`Lieferanten-Nr`=" & UZ & ")" _
)
.Name = "Abfrage von Microsoft Access-Datenbank"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Application.ScreenUpdating = True
End Sub

Worin der Unterschied in deinem Fall besteht, kann ich leider nicht sagen.
Gruß
Heinz
Anzeige
AW: Access Daten Import mit VBA
Dirk
Hallo Heinz,
vielen Dank. Ich habe durch Zufall den Rechner gewechselt (größerer Bildschirm war sinnvoller) und da lief die erste Variante direkt (ohne ODBC). Auf einem weiteren Rechner auch ... nur halt auf meinem Stammrechner nicht! Und das wohlgemerkt bei gleicher Excel Version. Verstehe wer will!
Habe dieses Forum übrigens das erste mal benutzt und bin sehr angenehm überrascht wie schnell und klasse das funktioniert!
Danke,
Dirk

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige