参数不是可选的吗?

时间:2013-03-21 20:46:29

标签: ms-access access-vba

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)?我知道这是一个低级别的问题,但我需要另外一双眼睛,我已经看了一个多小时了。错误是“编译错误:参数不可选”

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

Execute是一种方法,而不是财产。您不能在方法及其参数之间使用=,所以

CurrentDb.Execute = "..."

应该是

CurrentDb.Execute "..."