类型不匹配错误sql中从excel连接到mysql vba
Sub connectmysqlnormal()
Dim objListObj As ListObject
For Each objListObj In ActiveSheet.ListObjects
objListObj.Delete
Next
ActiveSheet.Cells.Select
Selection.ClearContents
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"ODBC;DSN=localtest;", Destination:=Range("$A$1")).QueryTable
.CommandText = Array(_
"SELECT cpu_avg_statistics_0.LOGDATE as 'Date of Month', cpu_avg_statistics_0.CPU as 'CPU Utilization %' FROM test.cpu_avg_statistics cpu_avg_statistics_0 WHERE (cpu_avg_statistics_0.LOGDATE between '2012-02-01' and '2012-02-05') AND (cpu_avg_statistics_0.SERVER_NAME='adm1') ORDER BY cpu_avg_statistics_0.LOGDATE" _
)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Table_Query_from_localtest"
.Refresh BackgroundQuery:=False
End With
End Sub
我可以连接在mysql中运行sql。但是当我像上面那样放置在vba代码中时, 我在sql语句中遇到了类型不匹配错误,请帮助并告诉我什么是错误的?类型不匹配错误sql中从excel连接到mysql vba
尝试没有在该行使用阵:
.CommandText = Array(_
"SELECT ..." _
)
这是一样的,类型不匹配 – 2012-03-26 00:10:11
对不起,它不工作,如果不使用数组,为什么? – 2012-03-26 00:18:44
因为CommandText是“string”类型的基本类型。数组是一个对象,但它不是“string”类型。 – NoChance 2012-03-26 01:10:10
我认为你需要下面的行与其他的QueryTable性的判定一起:
.CommandType = xlCmdSql
你可以从MySQL直接运行呢? – NoChance 2012-03-25 17:08:59
是的,我可以在mysql中运行后得到结果集 – 2012-03-25 18:59:24