ADO执行 - 编译错误:用户定义类型未定义
问题描述:
我有以下ado连接从excel访问,但它不起作用,我得到上述错误。有任何想法吗?ADO执行 - 编译错误:用户定义类型未定义
Sub ADO_to_access()
Dim database As New ADODB.Connection // ERROR HERE
Dim connectionstring As String
Dim NewSet As Recordset
Dim CurrentSheet As Worksheet
Set CurrentSheet = ActiveSheet
Set objaccess = Nothing
connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0; " & _
"Data Source=C:\Users\Carlos\Desktop\VBA - CW - Database.mdb;"
database.Open connectionstring
' ************* MEN
Set NewSet = New ADODB.Recordset
NewSet.Open "Mens_Dept_Data", database, adOpenKeyset, adLockOptimistic, adCmdTable
x = 6
Do While Len(Range("P" & x).Formula) > 0
With NewSet
.AddNew
.Fields("Irina").Value = CurrentSheet.Range("P" & x).Value
.Fields("Thomas").Value = CurrentSheet.Range("Q" & x).Value
.Fields("Jackie").Value = CurrentSheet.Range("R" & x).Value
.Update
End With
x = x + 1
Loop
NewSet.Close
database.Close
End Sub
答
我相信,这个问题可能会在这些类型:
adOpenKeyset, adLockOptimistic, adCmdTable
尝试定义它们如下:
编辑var adOpenForwardOnly = 0, adOpenKeyset = 1, adOpenDynamic = 2, adOpenStatic = 3; //CursorType Values
var adLockReadOnly = 1, adLockPessimistic = 2, adLockOptimistic = 3, adLockBatchOptimistic = 4; //LockTypeEnum Values
var adStateClosed = 0, adStateOpen = 1, adStateConnecting = 2, adStateExecuting = 4; //ObjectStateEnum Values
var adUseServer = 2, adUseClient = 3 //CursorLocationEnum Values
var adCmdTable = 2 //CommandTypeEnum Values
后:
对不起,这是针对JScrip方言的,但我相信你可以将它改写为VBScript。 :)
顺便说一句,在SO上的代码格式有一个错误。为了避免这种情况,请在评论结束时“关闭”评论: -/ – 2010-11-19 14:41:32