只有当所有表格都填写好后才添加新记录

Add new record only when all forms are filled out

我正在 MS Access 中创建一个新数据库。我已经创建了所有表格。

如何设置我的表单和按钮,以便只有在所有表单中的必填字段都已填写时,新记录才会添加到它们各自的表中?

我有 8 个表单供用户填写,每个表单"customer"。任何帮助是极大的赞赏。

谢谢

如果您点击按钮提交表单,您可以为该按钮设置一个 On Click 事件,该事件将 运行 以下代码:

Private Sub button_Click()

if ([field1].Value = "" or isnull([field1].value)) Then
    MsgBox "Fill out all the required fields before submitting"
    End
else 
    'Submit record using DoCmd.RunSQL "INSERT INTO....."
End If

End Sub

有一个 if 语句链来检查您要填写的所有字段。

如果您真的想要一系列可以相互打开然后最后一起提交所有表单的表单,试试这个:

对第一个表单中的按钮使用 On Click 事件,打开下一个表单,然后 运行 设置 macro/code 以提交记录。在下一个表格中做同样的事情。基本上这会不断添加到堆栈中,当调用最后一个表单并提交记录时,它会完成 On Click 事件和代码 returns 之前的表单。之前的表单将移动到下一行代码,即提交记录,然后该代码完成并发生同样的事情。这是一个小伪代码:

在表格 1 上:

Private Sub button_Click()

DoCmd.OpenForm 'enter parameters to open next form here
'Code to submit record
'DoCmd.CloseForm 'form name

End Sub

在表格 2、表格 3 上,依此类推:

Private Sub button_Click()

DoCmd.OpenForm 'enter parameters to open nextform here
'Code to submit record
'DoCmd.CloseForm 'form name

End Sub

确保在使用 DoCmd.openForm 暂停代码时使用参数 acDialog。您必须在之后关闭表单才能跳回之前的代码。我在上面的代码中添加了一些。按照此 link 了解有关暂停代码 http://www.pcreview.co.uk/threads/pause-code-while-waiting-for-a-popup-form-to-close.1155074/

的更多信息