2

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

4

1 回答 1

0
  • 试试看Range.CopyFromRecordset它是否有效。
  • 尝试使用CStr(oRs.Fields("memoField"))并分配Value2Range/ ActiveCell
  • 尝试使备注字段成为表中的最后一个物理列。备注字段仅在检索时才被读取。备注字段存在/可能仍然存在问题,这些字段实际上不在表格末尾。

我现在能想到的。

于 2010-03-31T00:10:06.110 回答