Die Dateipfade habe ich durch Variablen ersetzt.
Beim Ausführen des Makros treten folgende Fehler auf:
1) Es erscheint Dialogfenster "Arbeitsmappe auswählen" - sollte eigentlich nicht kommen, da alle Angaben vorhanden
2) Fehlermeldung: Laufzeitfehler '1004' SQL-Syntaxfehler oder Problem mit ODBC-Verbindung
3) bei Debuggen wird dann .Refresh BackgroundQuery: = True markiert
Was muss ich tun, damit mein Makro fehlerfrei funktioniert???
Ich wäre für jeden Tipp zur Problemlösung sehr dankbar!!!!
Hier der Quellcode:
option explicit
dim pfad_datei as string
dim pfad_datei_ohne as string
dim pfad as string
Sub daten()
datei = Range("B3").Value
pfad_datei = Range("B11").Value
pfad_datei_ohne = Range("B13").Value
Pfad = Range("B8").Value
''schreibweise:
'blabla = range("A1").Value
'"ODBC;DBQ=" & blabla & ";DefaultDir.......
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DBQ= " & pfad_datei & ";DefaultDir= " & Pfad & ";Driver={Microso" _
), Array( _
"ft Excel-Treiber (*.xls)};DriverId=790;FIL=excel 8.0;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ReadOnly=0;SafeTransactions" _
), Array("=0;Threads=3;UID=admin;UserCommitSync=Yes;")), Destination:=Range( _
"A1"))
.CommandText = Array( _
"SELECT `Tag$`.F1, `Tag$`.F2, `Tag$`.F3, `Tag$`.F4, `Tag$`.F65" & Chr(13) & "" & Chr(10) & "FROM ` " & pfad_datei_ohne & "`.`Tag$` `Tag$`" _
)
.Name = "Abfrage von daten"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = True
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 60
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=True
End With
Columns("C:C").Select
Selection.NumberFormat = "ddd"
Columns("C:C").EntireColumn.AutoFit
Columns("D:D").Select
Selection.NumberFormat = "ddd* dd/mm/yy"
Columns("D:D").EntireColumn.AutoFit
Columns("E:E").Select
Selection.NumberFormat = "#,##0.00"
Range("G1").Select
End Sub