2014-09-27 152 views
0

即时得到试图运行一个选择字符串MS Excel的VBA时自动化错误运行时错误13类型不匹配

代码如下:

Dim cn As ADODB.Connection 
Dim rs As ADODB.Recordset 
Dim strsql As String 

Set cn = New ADODB.Connection 
Set rs = New ADODB.Recordset 

Set cn = New ADODB.Connection 

Application.ScreenUpdating = False 

DBPath = "Path of Access DB HERE" 
DBProvider = "Provider=Microsoft.Jet.OLEDB.4.0;" 
dbparam = DBProvider & "data source =" & DBPath 

a = Sheets(1).ComboBox2.Value 

cn.Open dbparam 
With rs 
    .Open "Qry_WBT", cn, adOpenDynamic, adLockOptimistic, adCmdTable 
    ***.Open "Select * From " & [Qry_WBT] & " WHERE " & "[WBT Name] = '" & a & "'", cn, adOpenKeyset, adLockOptimistic, adCmdTable*** 
    If rs.EOF = True Then 
     MsgBox "No Data in selected field", vbOKOnly 
     Exit Sub 
    End If 
End With 

错误出现在。开“选择等等blah blah“部分

+0

什么是'了'的价值? – ja72 2014-09-27 04:33:19

+0

应该是'&'[Qry_WBT]“&'?为什么要打开RS两次? – 2014-09-27 04:36:09

回答

0

Chris是对的。你不能打开它两次。
这就是我认为3705的原因。
我认为你不需要括号内为Qry_WBT所以才有此一展身手:

Dim mysource As String 
mysource = "Select * From Qry_WBT WHERE [WBT Name] = '" & a & "'" 
With rs 
    .Open mysource, cn, adOpenKeyset, adLockOptimistic, adCmdTable 
    '~~> rest of the code 
End With