Ich bin eine SQL-SELECT-Abfrage durch eine ADO-Verbindung zu einer Excel 2007-Arbeitsmappe mit dem folgenden Code ausgeführt wird (eine benutzerdefinierte Version von VBScript verwenden)SQL Query Run Against Excel-Arbeitsmappe Kosten Verkürzte Textfeld
dim ado, rs
set ado = CreateObject("ADODB.Connection")
ado.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=workbook.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1"";"
ado.open()
set rs = ado.execute("SELECT * FROM [sheet1$]")
der ist geradeheraus. Das Problem besteht darin, dass jede Zelle, deren Text länger als 255 Zeichen ist, abgeschnitten wird. Gibt es einen Weg dahin? Gibt es eine Eigenschaft in der Verbindungszeichenfolge, die dies unterstützt oder ist es eine Option, die ich im Excel-Dokument selbst ändern muss? Ich habe versucht, MSSQL CAST() -Funktion, aber dies verursacht nur einen Fehler bei der Ausführung.
Jede Hilfe würde sehr geschätzt werden.
Ich habe auch bemerkt, dass es manchmal mehr als 255 Zeichen zurückgibt, aber die ersten 255 Zeichen sind von der richtigen Zelle und der verbleibende Text ist scheinbar aus einer zufälligen Zelle (beunruhigend ist der zusätzliche Text jedes Mal anders). –
dies (zufälliger angehängter Text) ist nicht der Fall, wenn ich das Dateiformat 2003 und den Jet-Provider in der Verbindungszeichenfolge verwenden –