2012-02-06 4 views
2

나는 이것이 아마 뭔가 간단한 것 같아서 미리 사과드립니다. 이것은 실제로 처음으로 VBA를 쓰는 나의 처음이고 나는 간단하게 고치는 방법의 주위에 나의 머리를 얻을 수없는 문제에왔다. 나는 여러 가지를 수색하고 시도했지만, 내가 시도해도 아무리 똑같은 문제가있다.런타임 오류 13 형식 불일치 VBA 액세스 2007

새로운 레코드 세트를 열어 SQL을 사용하는 다른 테이블의 값으로 채우고 레코드 세트에서 값을 검색 한 다음 양식의 일부 레이블에 캡션을 설정하기 만하면됩니다. 내 코드 :

Dim oconStudents As ADODB.Connection 
Dim orsStudents As ADODB.Recordset 
Dim strStudentsSQL As String 

Set oconStudents = CurrentProject.AccessConnection 
Set orsStudents = New ADODB.Recordset 
Set strGetCustIDSQL = _ 
    "SELECT [CustomerID] FROM [Students Classes] WHERE [Class ID] = " & _ 
    Me.txtClassID.Value & ";" 

orsStudents.Open strGetCustIDSQL, oconStudents, adOpenForwardOnly, _ 
    adLockReadOnly, adCmdTable 

With orsStudents 
    If Not orsStudents.EOF Then 
     lblStudent1.Caption = orsStudents.Fields.Item(0) 
     orsStudents.MoveNext 
    End If 
End With 

나는 이것을 실행하고 나는이 라인 런타임 오류 13 얻을 :

Set strGetCustIDSQL = _ 
    "SELECT [CustomerID] FROM [Students Classes] WHERE [Class ID] = " & _ 
    Me.txtClassID.Value & ";" 

나는 내 인생이 이유를 알아낼 수 없기 때문. 쿼리에서 SQL을 실행하면 내 값이 올바르게 반환됩니다. adCmdTable을 adCmdText로 변경했으며 "#"기호뿐만 아니라 SQL 문자열의 Me.txtClassID.Value 섹션 주위에 다른 문자를 추가하려고했습니다. SQL 문자열 위로 마우스를 가져 가면 올바른 "클래스 ID ="값 (이 경우 "2")을 볼 수 있지만 SQL 문자열 위로 마우스를 가져 가면 "= 비어있는"것으로 표시됩니다.

내가 알아 차리지 못하는 것은 무엇입니까? 미리 도움을 주셔서 감사합니다!

답변

3

Set 문자열의 할당 부분이 올바르지 않습니다. 개체 (예 : ADODB 개체)에만 Set을 사용합니다. 기본 데이터 유형 (문자열, 정수 등)은 간단한 할당을 사용합니다.

strGetCustIDSQL = _ 
    "SELECT [CustomerID] FROM [Students Classes] WHERE [Class ID] = " & _ 
    Me.txtClassID.Value & ";" 

이 또한 내가 생각하지 않는다 ";" ADODB에서 SQL을 실행할 때 nessecary입니다.

+0

멋진. 나는 그것이 단순해야만한다는 것을 알았다. 분명히 그 얼굴은 하나뿐입니다. 고마워요! – Eyowzitgoin

관련 문제