我在使用 VBA 执行 SQL 查询并将结果复制到 Excel 工作表中时遇到问题。
当子执行时,它只复制 256 的倍数的行(因此第 256、512、768 等行是唯一填充到 Excel 中的行)。我从数据库中复制任何其他字段都没有问题。此外,当我在 MySQL 中运行相同的查询时,它工作正常。作为 SQL 和 VBA 的新手,我看不出这个特定字段会造成麻烦的任何原因。我唯一能想到的是它的内容是一个始终以下划线开头的字符串(我只提到这一点是因为它是它与其他一些字段之间的唯一区别)。
有人对为什么会发生这种情况有任何想法吗?
干杯,
利亚姆
编辑:这是有问题的代码片段。老实说,我不确定看到代码是否会有所作为,因为它在其他情况下工作得很好,但话又说回来,这就是我是新手的原因:)
Dim con As ADODB.Connection
Dim rst As ADODB.Recordset
Set con = New ADODB.Connection
Set rst = New ADODB.Recordset
con.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=ipaddress;UID=userID;PWD=password;DATABASE=jiradb;OPTION=16427;"
con.Open
sql = "SELECT TEMPO_DATA FROM gssd_worklog WHERE WORK_DATE BETWEEN '2012-01-01' AND '2012-03-31'"
'Open Recordset'
rst.Open sql, con
'Copy Data to Excel'
Set ws = ActiveSheet
ws.Range("A2").CopyFromRecordset rst