Hallo Zusammen,
wie kann ich mit VBA abfragen ob eine bestimmte ODBC Quelle vorhanden und erreichbar ist,
bevor ich eine Abfrage starte.
Danke im Voraus.
Steffen Schmerler
Hallo Steffen,
um welche Art von ODBC-Verbindung handelt es sich denn ? Mit welcher Datei ist Deine Mappe verknüpft ?
Je nach Art könnte z.B. eine der beiden Anweisungen die Quelldatei ermitteln : strDatei = ActiveSheet.QueryTables(1).SourceDataFile
oder : strDatei = ActiveSheet.QueryTables(1).SourceConnectionFile
Mit folgender Anweisung könntest Du prüfen, ob die Datei existiert : If Dir(strDateiname)"" then
Evtl. hilft auch folgende Anweisung : strDatei = ActiveSheet.QueryTables(1).Connection
Das Ergebnis kannst Du dann per Split(strDatei,";") "zerlegen", um daraus den Pfad der verknüpften Datei auszulesen...
Hope that helps,
Gruß NoNet
Anzeige
ich hole meine Daten dynamisch
22.04.2010 23:37:06
SteffenS
mein Code ist z.B.:
WS.Cells.ClearContents
With WS.QueryTables.Add(Connection:="ODBC;DSN=" & odbcn & ";DB=" & dbname & ";HOST=" & hname & ";SERV=sqlexec;SRVR=" & hserver & ";PRO=sesoctcp;UID=" & bname & ";PWD=" & bpswd, Destination:=WS.Range(dbdest))
.CommandText = Array("SELECT ...........")
.Name = "db_abfrage"
.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
'Datenbankverweis löschen
WS.Cells.QueryTable.Delete
Wie kann ich also vor der Abfrage abfragen ob die Datenquelle (ODBC Treiber zur einer Linux)
vorhanden und erreichbar ist?
Danke nochmal
VG
Steffen
Anzeige
SourceDataFile oder SourceConnectionFile
22.04.2010 22:39:44
NoNet
Hallo Steffen,
um welche Art von ODBC-Verbindung handelt es sich denn ? Mit welcher Datei ist Deine Mappe verknüpft ?
Je nach Art könnte z.B. eine der beiden Anweisungen die Quelldatei ermitteln : strDatei = ActiveSheet.QueryTables(1).SourceDataFile
oder : strDatei = ActiveSheet.QueryTables(1).SourceConnectionFile
Mit folgender Anweisung könntest Du prüfen, ob die Datei existiert : If Dir(strDateiname)"" then
Evtl. hilft auch folgende Anweisung : strDatei = ActiveSheet.QueryTables(1).Connection
Das Ergebnis kannst Du dann per Split(strDatei,";") "zerlegen", um daraus den Pfad der verknüpften Datei auszulesen...
Hope that helps,
Gruß NoNet