2014-04-01 4 views
1

VBA에서 SQL 쿼리를 수행하여 특정 사례 번호를 다시 처리하려고합니다. 쿼리를 실행할 때마다 "조건 식의 데이터 형식 불일치"오류가 반환됩니다. 나는 자동 넘버 프라이 머리 키를 쿼리하기 위해 쿼리를 정수에 전달하려고한다.VBA에서 SQL 쿼리의 데이터 형식이 일치하지 않습니다.

Dim c As ADODB.Connection 
    Dim r As ADODB.Recordset 
    Dim strSQL As String, strManager As String 
    Set c = New ADODB.Connection 
    c.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Commit Tracker.accdb; Persist Security Info=False;" 
    strSQL = "SELECT * FROM CommitTrk WHERE CASE_ID_NBR = '" & CInt(frmCommitViewer.lstCases.Value) & "'" 
    Set r = c.Execute(strSQL) 

물론 디버그가 실행 명령을받습니다. 어떤 도움을 주시면 감사하겠습니다. 자동 번호와 일치하는 잘못된 데이터 형식을 전달하고 있습니까? 그렇다면 어떤 데이터 유형을 사용해야합니까? 감사! CASE_ID_NBR 숫자 유형이있는 경우

답변

1

, 당신은 따옴표없이 사용한다 :

strSQL = "SELECT * FROM CommitTrk WHERE CASE_ID_NBR = " & CInt(frmCommitViewer.lstCases.Value) 

당신이 읽을 할 수 있습니다 : 일 Global Variables in SQL statement

+1

완벽. 나는 아직도이 SQL 주위에 내 머리를 싸려고 노력하고있다. 포맷팅이 나를 포기하고 있습니다. 내가 대답 할 수있게되면 그 대답을 받아 들일 것이다. 나는 그것을 조금 읽을 것이다. 감사! – 1337Atreyu

+0

일반적으로' "SELECT ... WHERE Field1 = 1"'(숫자)' "SELECT ... WHERE Field1 = # 01/01/2012 #"'(날짜)와''SELECT. .. 어디 Field1 = 'sometext' "(텍스트) –

관련 문제