2016-06-03 4 views
1

Следующий код вызывает ошибку «Код ошибки выполнения« 3061 »слишком мало параметров. Ожидаемый 1.« но я не знаю, почему:Причина «Код ошибки во время выполнения« 3061 »слишком мало параметров Ожидаемое значение 1."

Private Sub cmdAdd_Click() 
    'to add data to table 
    CurrentDb.Execute "INSERT INTO student(Name, Age, Sex, Email, Mobile, Course, Name_Of_Kin, Relationship, Email_Of_Kin, Mobile_Of_Kin, School_Fees, Qualification) " & _ 
    "VALUES (" & Me.txtName & " ,'" & Me.DTPAge & "','" & Me.cmbSex & "','" & Me.txtEmail & "','" & Me.txtMobile & "','" & Me.cmbCourse & "','" & Me.txtNOK & "','" & Me.cmbROK & "','" & Me.txtEOK & "','" & Me.txtMOK & "','" & Me.cmbFees & "','" & Me.cmbQual & "')" 
    frmStudentSub.Form.Requery 

End Sub 
+1

Имя выглядит как поле Text, но вы не окружающие txtName одинарные кавычки в запросе. Все ваши поля также выглядят как текстовое поле, в соответствии с вашим запросом. Убедитесь, что вы соответствуете типам полей и правильно выполняете соответствующее окружение. – smozgur

+0

В качестве примечания, MS-Access часто дает вам такую ​​ошибку, когда SQL считается недопустимым. Это редко дает вам подробную ошибку, указывающую на фактическую проблему ... –

ответ

0

Во-первых, посмотрите здесь:

Insert record using a recordset

Тогда, как кажется, вы вставляете запись в таблице, используемой в открытой форме, вы можно использовать RecordsetClone этой формы:

Private Sub cmdAdd_Click() 

    Dim rs As DAO.Recordset 

    Set rs = frmStudentSub.Form.RecordsetClone 
    rs.AddNew 
     rs!Name.Value = Me!txtName.Value 
     rs!Age.Value = Me!DTPAge.Value 
     rs!Sex.Value = Me!cmbSex.Value 
     rs!Email.Value = Me!txtEmail.Value 
     rs!Mobile.Value = Me!txtMobile.Value 
     rs!Course.Value = Me!cmbCourse.Value 
     rs!Name_Of_Kin.Value = Me!txtNOK.Value 
     rs!Relationship.Value = Me!cmbROK.Value 
     rs!Email_Of_Kin.Value = Me!txtEOK.Value 
     rs!Mobile_Of_Kin.Value = Me!txtMOK.Value 
     rs!School_Fees.Value = Me!cmbFees.Value 
     rs!Qualification.Value = Me!cmbQual.Value 
    rs.Update 
    ' Not needed.  
    ' frmStudentSub.Form.Requery 

    Set rs = Nothing 

End Sub 
+0

Большое вам спасибо, господин Это сработало, я очень благодарен –

+0

Отлично. Спасибо за ответ. – Gustav

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