2013-03-21 3 views
1
Private Sub cmdAdd_Click() 
'add data to table 
CurrentDb.Execute = "INSERT INTO jscbb_dir2(ID,Lastname,FirstName, PrimA, Artea,LubNum,OfficeNum,OfficePhone,Email,LabPhone,stats)" & _ 
" VALUES(" & Me.Textid & ",'" & Me.TextLast & "','" & Me.TextFirst & "','" & Me.Textprima & "','" & Me.Textarea & "','" & Me.Textlabnum & _ 
"','" & Me.Textofficenum & "','" & Me.Textofficephone & "','" & Me.Textemail & "','" & Me.Textlabphone & "','" & Me.Textstatus & "')" 

'refresh data is list on focus 
jscbb_dirsub.Form.Requery 

End Sub 

왜 마지막 (Me.Textstatus)에서 오류가 발생합니까? 나는 이것이 저급 문제라는 것을 알고 있지만 또 다른 한 쌍의 눈이 필요하다. 나는 한 시간 이상 이것을보고 있었다. 오류는 "컴파일 오류 : 인수가 선택 사항이 아닙니다."인수는 선택 사항이 아닙니까?

+0

해야합니다, 당신은 어떤 오류가있다? 우리에게 문제를 말하지 않는다면 어떻게 도울 수 있습니까? – Doorknob

+2

실행 문을 문자열에 할당하고 해당 문자열의 값을 즉시/디버그 창에 보내 실행중인 것으로 생각하는 문을 검사 할 수 있도록합니다. – horatio

+0

'Debug.Print TypeName (Me.Textstatus) '는 뭐래? – HansUp

답변

1

매개 변수를 고려하면 디버그하기가 쉽습니다.

Dim qdf As QueryDef 
ssql = "INSERT INTO jscbb_dir2(ID,Lastname,FirstName,PrimA,Artea," _ 
    & "LubNum,OfficeNum,OfficePhone,Email,LabPhone,stats) " _ 
    & "VALUES([id],[last],[first],[prima],[area],[lab]," _ 
    & "[office],[phone],[email],[stat])" 
Set qdf = CurrentDb.CreateQueryDef("", ssql) 
qdf.Parameters("id") = Me.TextID 
qdf.Parameters("last") = Me.Textlast 
qdf.Parameters("first") = Me.Textfirst 
qdf.Parameters("prima") = Me.Textprima 
qdf.Parameters("area") = Me.Textarea 
qdf.Parameters("lab") = Me.Textlabnum 
qdf.Parameters("office") = Me.Textofficenumbet 
qdf.Parameters("phone") = Me.Textofficephone 
qdf.Parameters("email") = Me.Textemail 
qdf.Parameters("stat") = Me.Textstatus 

qdf.Execute dbFailOnError 
0

Execute은 속성이 아니라 메소드입니다. 당신은 방법과 인수 사이 =를 사용하지 않기 때문에

CurrentDb.Execute = "..." 

CurrentDb.Execute "..."