2013-03-21 33 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 2013-03-21 20:51:39

+2

分配執行語句的字符串,而該字符串的值發送到即時/調試窗口,以便您可以檢查你以爲你是執行該語句。 – horatio 2013-03-21 20:58:27

+0

是什麼'Debug.Print類型名(Me.Textstatus)'說什麼? – HansUp 2013-03-22 08:17:23

回答

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 "..."