[英]Excel VBA user defined type not defined-
我正在嘗試創建一個excel程序,可以使用VBA從同一個文件中的sheet1到sheet2獲取數據。 但是當我宣布ADODB時,它不會出現在下拉列表中。 當我嘗試運行sub時,我得到'用戶定義的類型未定義'錯誤。 任何人都可以與我分享任何修復?
代碼如下:
Sub testsql()
'declare variable
Dim objMyConn As ADODB.Connection
Dim objMyCmd As ADODB.Command
Dim objMyRecordSet As ADODB.Recordset
Set objMyConn = New ADODB.Connection
Set objMyCmd = New ADODB.Command
Set objMyRecordSet = New ADODB.Recordset
'open connection
objMyConn.connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & wbWorkBook & ";Extended Properties=Excel 8.0;"
objMyConn.Open
'set and execute command
Set objMyCmd.activeconnection = objMyConn
objMyCmd.CommandText = "select top 10000 [Die No], Description from DieMaintenanceEntry"
objMyCmd.CommandType = adcmdtext
'open recordset
Set objMyRecordSet.Source = objMyCmd
objMyRecordSet.Open
'copy data to excel
ActiveWorkbook.Sheets("Display-Die Maintenance Summary").ActiveSheet.Range("A5").CopyFromRecordset (objMyRecordSet)
End Sub
您可以通過兩種方式解決此問題:
早期綁定(由您的代碼暗示)
您需要做的是引用正確的Microsoft ActiveX Data Object
。 對於我的版本,它是6.1
。
使用后期綁定(無需引用庫)
Dim objMyConn As Object '/* Declare object type variable */ Dim objMyCmd As Object Dim objMyRecordset As Object '/* Set using create object */ Set objMyConn = CreateObject("ADODB.Connection") Set objMyCmd = CreateObject("ADODB.Command") Set objMyRecordset = CreateObject("ADODB.Recordset")
至於使用哪個,我只能提出建議。 在開發過程中,使用Early Binding
可以利用Intellisense
。 在部署時,更改為Late Binding
以克服版本兼容性問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.