Problem beim Zugriff auf Excel-Tabellenblatt

09/01/2009 - 13:01 von Jan Lorenz | Report spam
Hallo,

in einem Programm lese ich einige Daten ein. Leider ist der Name des Sheets
nicht immer der gleiche. Im Moment stelle ich zuerst den Namen des 1.Sheets
fest und greife dann zu:

Set CN = New ADODB.Connection
CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Path & ";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"""
CN.CursorLocation = adUseClient
CN.Open

' Tabellennamen aus Datenbank extrahieren
Set adoSchema = CN.OpenSchema( _
adSchemaTables, _
Array(Empty, Empty, Empty, "Table"))

' Alle Sàtze nacheinander durchlaufen
strTable = ""
Do Until adoSchema.EOF Or strTable <> ""

' Keine Systemtabellen
If InStr(1, adoSchema!TABLE_NAME, "MSys") = 0 Then

' Tabellenname holen
strTable = adoSchema!TABLE_NAME

End If

' Nàchster Datensatz
adoSchema.MoveNext
Loop

' Das Schema schließen
adoSchema.Close


Das Problem ist nun, dass manchmal der Tabellennamen ein ' enthàlt (z.B.
PE20'2). Dieser Name wird zwar so festgestellt, aber dann beim Zugriff mit
wird der Namen nicht gefunden:
Set RS = New ADODB.Recordset
SQL = "SELECT * FROM [" + strTable + "]"
RS.Open SQL, CN, adOpenStatic, adLockOptimistic // hier kommt der Fehler

Hat jemand eine Idee? Z.B. wie ich einfach immer die 1.Tabelle heranziehe
unabhàngig vom Namen (über Nr.). Oder eben wie es trotz ' funktioniert.

Viele Grüße
Jan
 

Lesen sie die antworten

#1 Wolfgang Bußmann
09/01/2009 - 19:22 | Warnen spam
Hallo Jan,

' Tabellenname holen
strTable = adoSchema!TABLE_NAME



überprüfe doch hier einmal den zurückgegeben Wert der Variablen
strTable. Könnte es sein, dass hier "PE20''2$" ausgegeben wird?
(Zwei Hochkommata!) Bei mir war es jedenfalls so.

Nach dem Ändern der Variablen auf ein Hochkommata war bei mir das Öffnen
des Recordsets möglich.

Viel Erfolg.

Gruß Wolfgang

Ähnliche fragen