代码之家  ›  专栏  ›  技术社区  ›  the.jxc

如何利用excelvba从Access数据库中提取备注字段?

  •  2
  • the.jxc  · 技术社区  · 15 年前

    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--调用失败。

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

    …还提供错误运行时错误“3146”:ODBC--调用失败。

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

    1 回复  |  直到 15 年前
        1
  •  0
  •   AMissico    15 年前
    • 尝试 Range.CopyFromRecordset 看看是否有效。
    • CStr(oRs.Fields("memoField")) 并分配给 Value2 Range / ActiveCell .
    • 尝试将memo字段设置为表中的最后一个物理列。备忘字段在检索时是只读的。备忘字段不在表的末尾,可能仍然存在问题。

    我现在能想到的就是。

    推荐文章