ODBC verschiebt trotz Überschreibungs-Einstellung
24.10.2007 13:45:00
Mike
Ich habe eine Tabelle, da stehen in der 2. Spalte B eine liste mit Access-Dateinamen, die alle im gleichen Verzeichnis liegen.
In der Zelle B1 habe ich eine ODBC Abfrage, die ich immer wieder korrigiere (Änderung des Dateinamen und des Befehls.) und den Wert in verschiedene Zeilen eintrage.
Die Befehle stehen in der ersten Zeile und ergeben immer wieder einen Wert.
Mein Problem beim Refresh werden die Zellen in der Spalte B ab der Zeile 3 immer nach rechts verschoben.
Ich hänge euch die Makros an und hoffe.
Vielen Dank
Mike René
Sub uebernahme()
Dim datei As String
For z = 6 To 9
datei = Range("a1").Value2 & Cells(z, 2).Value2
For s = 3 To 6
getAccessValue Cells(1, s).Value2, datei
Cells(z, s).Value2 = Range("B1").Value2
Next
Next
End Sub
Sub getAccessValue(Befehl As String, dateiname As String) '
Range("b1").Select
With Selection.QueryTable
.Connection = Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" & dateiname & "; _
Mode=Share D" _
, _
"eny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry _
Path="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Datab" _
, _
"ase Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk _
Transactions=1;Jet OLEDB:New Database Password="""";J" _
, _
"et OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't _
Copy Locale on Compact=False;Jet OLEDB:Co" _
, "mpact Without Replica Repair=False;Jet OLEDB:SFP=False")
.CommandType = xlCmdSql
.CommandText = Befehl
.RefreshStyle = xlOverwriteCells
.Refresh BackgroundQuery:=False
End With
End Sub