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

如何使用Excel VBA从Access数据库中提取备注字段?,excel,ms-access,memo,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;") 然后我使用一个查询并获取一个结果集来获取一

我有一个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个字符,这意味着这不是一个可行的解决方案。

  • 请尝试
    Range.CopyFromRecordset
    查看它是否有效
  • 尝试使用
    CStr(oRs.Fields(“memoField”)
    并将
    范围的
    值2
    分配给
    /
    ActiveCell
  • 尝试使备注字段成为表中的最后一个物理列。检索时,备注字段为只读。备注字段不在表的末尾,但存在/可能仍然存在问题
我现在能想到的一切。

  • 请尝试
    Range.CopyFromRecordset
    查看它是否有效
  • 尝试使用
    CStr(oRs.Fields(“memoField”)
    并将
    范围的
    值2
    分配给
    /
    ActiveCell
  • 尝试使备注字段成为表中的最后一个物理列。检索时,备注字段为只读。备注字段不在表的末尾,但存在/可能仍然存在问题

我现在所能想到的一切。

我很早就尝试过CStr,认为这是转换的问题,但这也引发了完全相同的错误。我将尝试其他两种选择,谢谢。我很早就尝试了CStr,认为这是转换的问题,但这引发了完全相同的错误。我会尝试其他两种选择,谢谢。