2015-04-30 84 views
0

所以我想再次教自己的VBA,我遇到了麻煩。我試圖向表中添加新用戶,但當我點擊我的「更新」按鈕時,仍然收到上述錯誤。文本字段將採用2個字母和5個數字的形式。例如XX11111。運行時錯誤「3061」:參數太少。預計2

Private Sub cmdAdd_Click() 
'when we click on button Add there are two options 
'1. for insert 
'2. for update 
If Me.txtLoginName.Tag & "" = "" Then 

    'add data to table 
    CurrentDb.Execute "INSERT INTO tblUsers(LoginName,UserName,Rank) " & _ 
      " VALUES('" & Me.txtLoginName & "','" & Me.txtUsername & "','" & Me.cboRank & "')" 
Else 

     CurrentDb.Execute "UPDATE tblUsers " & _ 
      "set LoginName=" & Me.txtLoginName & "'" & _ 
      ", UserName='" & Me.txtUsername & "'" & _ 
      ", Rank='" & Me.cboRank & "'" & _ 
      " WHERE LoginName=" & Me.txtLoginName.Tag 
End If 
'clear form 
cmdClear_Click 

'refresh data in list on form 
frmModifyUsersSub.Form.Requery 
End Sub 
+0

是它停止哪一行呢? – Sam

+1

你錯過了'在更新命令和條件是什麼應該檢查? –

+0

您可以通過使用參數查詢來避免這些報價問題。 – HansUp

回答

0

該錯誤幾乎給你答案。你需要2個參數來處理失敗的功能。有一件事是嘗試改變

CurrentDb.Execute "INSERT INTO tblUsers(LoginName,UserName,Rank) " & _ 
     " VALUES('" & Me.txtLoginName & "','" & Me.txtUsername & "','" & Me.cboRank & "')" 

CurrentDb.Execute "UPDATE tblUsers " & _ 
     "set LoginName=" & Me.txtLoginName & "'" & _ 
     ", UserName='" & Me.txtUsername & "'" & _ 
     ", Rank='" & Me.cboRank & "'" & _ 
     " WHERE LoginName=" & Me.txtLoginName.Tag 

CurrentDb.Execute "INSERT INTO tblUsers(LoginName,UserName,Rank) " & _ 
     " VALUES('" & Me.txtLoginName & "','" & Me.txtUsername & "','" & Me.cboRank & "')",dbFailOnError 

CurrentDb.Execute "UPDATE tblUsers " & _ 
     "set LoginName='" & Me.txtLoginName & "'" & _ 
     ", UserName='" & Me.txtUsername & "'" & _ 
     ", Rank='" & Me.cboRank & "'" & _ 
     " WHERE LoginName='" & Me.txtLoginName.Tag & "'", dbFailOnError 
+0

這工作得很好!感謝:D –

+0

如果它的工作,你會標記爲答案嗎? – Sam

1

你缺少一個「在這一行:

" set LoginName=" & Me.txtLoginName & "'" & _ 

將其更改爲

" set LoginName='" & Me.txtLoginName & "'" & _ 

和:

" WHERE LoginName=" & Me.txtLoginName.Tag 

" WHERE (LoginName='" & Me.txtLoginName.Tag & "')" ' and I don't know if this your intended where condition. 
+0

由於你最近的建議 –

+0

很酷,這給了語法錯誤.. thx @HansUp –