gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 11:35:01 25 4
gpt4 key购买 nike

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

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

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

表格更新前代码:

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

添加录制按钮:
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

最佳答案

要使用 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 (CustomerID, CustomerName, CustomerAddressLine1, City, Zip) values (txtCustomerID.Value, txtCustomerName.Value, txtCustomerAddressLine1.Value, txtCity.Value, txtZip.Value)"

End Sub
在此 Sub 中,您可以添加要验证用户输入的值的所有代码,并选择是否要提交记录。使用 VBA 提交表单有很多控制,因此您不需要 BeforeUpdate事件。
此外,请勿在此方法中使用绑定(bind)表单。我不知道有什么影响,但我不会尝试。 Access 非常适合开始使用,但是当您想做更复杂的事情时,使用 VBA 会更容易。

关于vba - 如何使用 VBA 在 MS Access 中添加新记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39109270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com