2014-09-27 4 views
0

임 MS 엑셀 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 

오류는 ".open 선택 어쩌구에 온다 예 "라고 말합니다.

+0

'A'의 값이 무엇입니까? – ja72

+0

'& "[Qry_WBT]"&'여야합니까? RS를 두 번 열어 보는 이유는 무엇입니까? –

답변

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 
관련 문제