我在使用VBA执行SQL查询并将结果复制到Excel工作表时遇到问题。SQL查询只返回一个字段的完整结果
当子程序执行时,它只复制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
您应该发布您的子代码,以便我们尝试回答这个问题 – Lamak 2012-04-19 12:44:58
您在哪里定义'rst'? – Lamak 2012-04-19 12:59:08
对不起,现在在原帖子中的声明 – 2012-04-19 13:02:27