仅在填写所有表单时添加新记录

时间:2016-08-17 12:52:17

标签: forms ms-access ms-access-2013 microsoft-reporting

我在ms访问中创建一个新数据库。我已经创建了所有表单。

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

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

由于

1 个答案:

答案 0 :(得分:0)

如果您点击按钮提交表单,则可以为该按钮设置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事件,打开下一个表单,然后运行宏/代码以提交记录。在下一个表格中做同样的事情。基本上这会不断添加到堆栈中,当调用最后一个表单并提交记录时,它会完成On Click事件并且代码返回到之前的表单。之前的表单将移动到提交记录的下一行代码,然后该代码完成并发生相同的事情。这是一个小伪代码:

表格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。您必须在之后关闭表单才能跳回到上一个代码。我在上面的代码中添加了一些内容。有关暂停代码http://www.pcreview.co.uk/threads/pause-code-while-waiting-for-a-popup-form-to-close.1155074/

的详细信息,请点击此链接