2015-04-30 2 views
0

Итак, я пытаюсь снова научить себя VBA, и у меня проблемы с проблемами. Я пытаюсь добавить новых пользователей в таблицу, но продолжаю получать вышеуказанную ошибку, когда я нажимаю кнопку «Обновить». Текстовое поле будет состоять из двух букв и 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

cool .. thx @HansUp –

Смежные вопросы