如何使用Excel VBA从Access数据库中提取备注字段?

时间:2010-03-30 21:14:51

标签: excel ms-access memo

我有一个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似乎根本无法处理备注字段内容。我的代码......

ActiveCell = oRs.Fields("memoField")

...给出错误运行时错误'3146':ODBC - 调用失败。

有什么建议吗? Excel VBA实际上可以获取备忘录字段数据吗?或者它完全不可能。我也从GetChunk得到完全相同的错误。

ActiveCell = oRs.Fields("memoField").GetChunk(0, 2)

...也给出错误运行时错误'3146':ODBC - 调用失败。

转换为文本字段可以使一切正常。但是,当然有些数据被截断为255个字符,这意味着这不是一个可行的解决方案。

1 个答案:

答案 0 :(得分:0)

  • 尝试使用Range.CopyFromRecordset查看是否有效。
  • 尝试使用CStr(oRs.Fields("memoField"))并分配到Value2 / Range的{​​{1}}。
  • 尝试将备注字段设为表格中的最后一个物理列。只有在检索时才会读取备忘录字段。备忘录字段存在/可能仍然存在问题,而这些备忘录字段实际上并不在表格的末尾。

我现在所能想到的一切。