【发布时间】:2011-10-05 16:13:32
【问题描述】:
我正在尝试从 SQL 服务器检索数据,以便在某些 Excel 2003 宏中使用。我想避免使用 QueryTables,因为我不希望这个从实际工作表中写入和读取的中间步骤。这似乎既耗时又毫无意义。
我已设法获取记录集,但它在服务器上包含数据类型为“备忘录”的空数据。
此外,程序在尝试将数据存储到 Range 时崩溃。它似乎进入了第一个“空”字段,然后它给了我一个 1004 错误代码。
显然,备忘录字段让我很伤心。任何人都可以就如何解决这个问题提出建议,或者我应该做些什么不同的事情?
objMyConn.connectionString = "ODBC;" _
& "Provider=SQLOLEDB;DRIVER={SQL Server};SERVER=VANDB;" _
& "APP=Microsoft Office 2003;DATABASE=WPDB_BE;Trusted_Connection=Yes;"
objMyConn.Open
我已经在网上搜索了很久,但是这个 Access / ADO / Excel 的东西非常痛苦。请帮忙。
编辑 1:我后来用“TOP 1”(“LIMIT 1”的 SQL 版本)修改了 SQL 查询,发现使用该记录集,备注字段 正确返回。同样,我可以选择一个有问题的字段,并获得更多行,例如"SELECT TOP 52 bad_field FROM ..."
所以我怀疑问题是某种 ADO 连接数据大小限制?似乎 Access“备忘录”类型就像一个“MEDIUMTEXT”MySQL 类型,那么我该如何绕过这样的限制呢?那么这是一个单独的问题,但是 ADO 连接有哪些替代方案?
【问题讨论】:
-
“备忘录”实际上是数据类型吗?我虽然在 SQL 服务器上它只是“文本”。备忘录是一个 Access 字段类型。
-
嗯,看起来是这样。一个非常相似的字段表示输入“文本”并且工作正常,而其他字段表示“备忘录”并且根本不工作。我只是通过 Access 查看表,我没有实际 SQL 数据库的管理视图。 (而且我不知道如何,因为我的经验是使用 PHP 和 mySQL,足以惹上麻烦)
-
另外:请注意,我发现如果我将 SQL 查询限制为单个记录,我可以查看其中一些“备忘录”字段。这让我相信可以存储在记录集中的数据类型大小是有限制的?