如何使用Excel VBA从Access数据库中提取备注字段?
我有一个Excel电子表格。 我通过ODBC连接到Access数据库。 东西沿线:
Set dbEng = CreateObject("DAO.DBEngine.40") Set oWspc = dbEng.CreateWorkspace("ODBCWspc", "", "", dbUseODBC) Set oConn = oWspc.OpenConnection("Connection", , True, "ODBC;DSN=CLIENTDB;")
然后我使用查询并获取结果集来获取一些表数据。
Set oQuery = oConn.CreateQueryDef("tmpQuery") oQuery.Sql = "SELECT idField, memoField FROM myTable" Set oRs = oQuery.OpenRecordset
现在出现了这个问题。 我的领域是一个dbMemo,因为最大内容长度高达几百个字符。 这不是那么长,实际上我读的价值只有十几个字。 但是Excel似乎根本不能处理Memo字段的内容。 我的代码…
ActiveCell = oRs.Fields("memoField")
…给错误运行时错误“3146”:ODBC – 调用失败。
有什么build议么? Excel VBA实际上可以获得备忘录字段数据吗? 或者是完全不可能的 我也从GetChunk获得完全相同的错误。
ActiveCell = oRs.Fields("memoField").GetChunk(0, 2)
…也给错误运行时错误'3146':ODBC – 调用失败。
转换到文本字段会使一切正常工作。 但是,当然有些数据被截断为255个字符,这意味着这不是一个可行的解决scheme。
- 尝试
Range.CopyFromRecordset
,看看它是否工作。 - 尝试使用
CStr(oRs.Fields("memoField"))
并将其分配给Range
/ActiveCell
Value2
。 - 尝试使备注字段成为表中的最后一个物理列。 备忘录字段仅在检索时才被读取。 备忘录字段存在/可能仍然是一个问题,这些备忘录字段并不在表格的最后。
我现在所能想到的