我有一个 SQL 2008 服务器,服务器中有一个表,该表有一个数据类型为 varchar(MAX) 的列。我正在尝试使用 ADO 将此表中的某些列导入 Excel 2010。这是我正在使用的代码示例:
Dim con As Object
Set con = CreateObject("ADODB.Connection")
cmd.CommandText = "SELECT dbo.(Table Name).Name From dbo.(Table)"
cmd.CommandType = 1
con.open
cmd.ActiveConnection = con
Dim rst as Object
set rst = cmd.Execute
ActiveSheet.cells(targetRange.Row, targetRange.Column).CopyFromRecordset rst
代码执行得很好,但是因为列 Name 设置为 varchar(MAX),所以工作表中没有显示任何名称。我知道这一点是因为我制作了 SQL 服务器的副本并将列的数据类型更改为 varchar(1024) 并且它以应有的方式工作。
我还尝试将记录集中的数据手动放入电子表格中,但没有成功。所以问题是我不能改变真正的 SQL 服务器。
是否有我可以添加到 Select 语句的命令或我可以使用的强制转换将 varchar(MAX) 转换为 Excel 可以使用的数据类型,或者我可以做些什么来使数据不当我读入它时为空?
我一直在研究这个问题一天,一些线程即将关闭,但他们正在谈论在 SQL 服务器上使用 select 并使用在这种情况下不起作用的强制转换,或者在其他一些程序中,这没有帮助.