VBA Excel SQL查询将字段限制为255个字符

时间:2018-12-21 19:08:11

标签: sql excel vba

在对Excel工作簿进行简单的select *查询时,它将截断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 :(得分:1)

您通常可以通过将Excel列的格式从“文本”更改为“常规”来解决此问题。

答案 1 :(得分:1)

找到了非常奇怪的问题和解决方案。这样就可以通过查询导出数据并插入数据。

  

这是Jet OLEDB提供程序的问题。看第一个8   电子表格的行,以确定每一列中的数据类型。如果   该列中的字段值不超过256个字符   前8行,然后假设数据类型为text,其中包含   字符限制为256。下面的知识库文章具有更多信息   关于此问题:http://support.microsoft.com/kb/281517