导入到Excel中时,ADOlogging集在“备注”数据types上失败

我正在尝试从SQL Server中检索数据,以用于某些Excel 2003macros。 我想避免使用QueryTables,因为我不希望从实际工作表中读取和读取这个中间步骤。 这似乎很费时间和毫无意义。

我设法得到logging集,但它包含数据types是“备忘录”,在服务器上的空数据。

此外,程序崩溃的地方,它试图将数据存储到一个范围。 它似乎使它成为第一个“空”字段,然后它给了我一个1004错误代码。

显然备忘录字段给了我悲伤。 任何人都可以提出如何解决这个问题的build议,或者我应该采取什么不同的方式?

objMyConn.connectionString = "ODBC;" _ & "Provider=SQLOLEDB;DRIVER={SQL Server};SERVER=VANDB;" _ & "APP=Microsoft Office 2003;DATABASE=WPDB_BE;Trusted_Connection=Yes;" objMyConn.Open 

我一直在网上search的年龄,但这个Access / ADO / Excel的东西是非常痛苦的。 请帮忙。

编辑1:我后来用“TOP 1”(SQL版本的“LIMIT 1”)修改了SQL查询,发现使用该logging集备份字段正确地返回。 同样,我可以select一个有问题的领域,并获得更多的行,例如“SELECT TOP 52 bad_field FROM …”

所以我怀疑这个问题是某种ADO连接数据大小的限制? 看来Access的“备忘录”types就像是一个“MEDIUMTEXT”MySQLtypes,那么我该如何绕过这个限制呢? 这是一个单独的问题,但是ADO连接有哪些替代scheme?

您可以使用您的ADO连接对象( objMyConn )来发现ADO解释它的数据types(以及其他属性):

 With objMyConn.OpenSchema(adSchemaColumns, Array(Empty, Empty, "your_table_name_here")) .Filter = "COLUMN_NAME = 'your_column_name_here'" MsgBox .Fields("DATA_TYPE").Value End With 

这将返回其各自的SchemaEnum枚举值的整数值,使用对象浏览器来发现枚举值。 在这里发布结果可以给你的问题提供进一步的线索。