如何使用VBA在MS Access中添加新记录?

New*_*his 7 forms ms-access vba button access-vba

我正在使用绑定表单来更新有关新客户或现有客户的信息.现在我在提交按钮上使用添加新记录宏(因为我不确定如何通过VBA添加或保存新记录).

我添加了一个更新前事件(使用VBA),让用户确认他们想要在退出表单之前保存更改.由于某种原因,这会覆盖添加记录按钮,现在用户无法在退出表单之前添加新记录.

如何使用VBA将新客户信息添加到正确的表中?这是应该用宏来完成的吗?

表格BeforeUpdate代码:

Private Sub Form_BeforeUpdate(Cancel As Integer) 
Dim strmsg As String 
strmsg = "Data has been changed." 
strmsg = strmsg & " Save this record?" 
If MsgBox(strmsg, vbYesNo, "") = vbNo Then 
    DoCmd.RunCommand acCmdUndo 
Else 
End If 
End Sub
Run Code Online (Sandbox Code Playgroud)

添加记录按钮:

Private Sub btnAddRecord_Click() 
Dim tblCustomers As DAO.Recordset 

Set tblCustomers = CurrentDb.OpenRecordset("SELECT * FROM [tblCustomers]") 
tblCustomers.AddNew 
tblCustomers![Customer_ID] = Me.txtCustomerID.Value 
tblCustomers![CustomerName] = Me.txtCustomerName.Value 
tblCustomers![CustomerAddressLine1] = Me.txtCustomerAddressLine1.Value 
tblCustomers![City] = Me.txtCity.Value 
tblCustomers![Zip] = Me.txtZip.Value 
tblCustomers.Update 
tblCustomers.Close 
Set tblCustomers = Nothing 
DoCmd.Close 
End Sub
Run Code Online (Sandbox Code Playgroud)

Mic*_*ael 7

要使用VBA提交记录,请On Click为该按钮创建一个事件,并在该Sub运行中执行以下命令:

Private Sub submitButton_Click()

'All the code to validate user input. Prompt user to make sure they want to submit form, etc.

DoCmd.RunSQL "INSERT INTO tblCustomers (txtCustomerID.Value, txtCustomerName.Value, txtCustomerAddressLine1.Value, txtCity.Value, txtZip.Value)"

End Sub
Run Code Online (Sandbox Code Playgroud)

在此Sub中,您可以添加要验证用户输入值的所有代码,并选择是否要提交记录.使用VBA提交表单有很多控制权,因此您不需要BeforeUpdate活动.

另外,请勿使用此方法使用绑定表单.我不知道会有什么影响,但我不会尝试.Access非常适合初学,但是当你想做更复杂的事情时,使用VBA会更容易.