VBA Excel SQL Query ограничивает поля до 255 символов - PullRequest
0 голосов
/ 21 декабря 2018

При выполнении простого запроса * на выборку в книге Excel текст обрезается после 255 символов.Ограничены ли поля набора записей 255 символами?если нет, как я могу получить полный текст поля из набора записей?

img1 В тестовой строке должно быть более 1400 символов. Все остальные позиции имеют длину менее 255 символов и являются правильными.

Sub ExportCallLogs()

Dim conn As Object
Dim rs As Object
Dim dbpath As String

' Create the connection string.
dbpath = "mypathhere.xlsx"

' Create the Connection and Recordset objects.
Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

' Open the connection and execute.
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbpath & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"
conn.Open sConnString
Set rs = conn.Execute("SELECT * FROM [Sheet1$]")

' Check we have data.
If rs.EOF Then
    MsgBox "Error: No records returned.", vbCritical
    Exit Sub
End If

'print headers and recordset
Workbooks.Add
For i = 0 To rs.Fields.Count - 1
    Cells(1, i + 1).Value = rs.Fields(i).Name
Next
Range("A2").CopyFromRecordset rs

Columns.AutoFit
Columns(i).ColumnWidth = 55

' Clean up
rs.Close
conn.Close
Set conn = Nothing
Set rs = Nothing

End Sub

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

Нашел очень странную проблему и решение.Это закончилось тем, что работало для экспорта данных через запрос и вставки данных.

Это проблема с поставщиком Jet OLEDB.Он просматривает первые 8 строк таблицы, чтобы определить тип данных в каждом столбце.Если столбец не содержит значения поля более 256 символов в первых 8 строках, он предполагает, что тип данных - текст, который имеет ограничение на число символов 256. В следующей статье базы знаний есть дополнительная информация по этой проблеме: http://support.microsoft.com/kb/281517

0 голосов
/ 21 декабря 2018

Часто это можно обойти, изменив формат столбца Excel с Text на General.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...