在对Excel工作簿进行简单的select *查询时,它将截断255个字符后的文本。记录集字段限制为255个字符吗?如果没有,如何从记录集中获取完整字段文本?
测试行应超过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
答案 0 :(得分:1)
您通常可以通过将Excel列的格式从“文本”更改为“常规”来解决此问题。
答案 1 :(得分:1)
找到了非常奇怪的问题和解决方案。这样就可以通过查询导出数据并插入数据。
这是Jet OLEDB提供程序的问题。看第一个8 电子表格的行,以确定每一列中的数据类型。如果 该列中的字段值不超过256个字符 前8行,然后假设数据类型为text,其中包含 字符限制为256。下面的知识库文章具有更多信息 关于此问题:http://support.microsoft.com/kb/281517