Ms access 关闭表单,无错误

Ms access 关闭表单,无错误,ms-access,vba,ms-access-2013,Ms Access,Vba,Ms Access 2013,我有一个表单,有3个不同的文本框和2个按钮->保存和关闭。 其中2个文本框不可见。其中1个不可见的文本框是自动递增整数,第二个文本框的值为表单的onLoad。最后一个需要填充。 我想要什么:当用户单击“关闭”按钮时,表单将关闭,即使可见文本框为空。 我现在拥有的内容:当用户单击“关闭”按钮时,access会出现错误“文本框为空”。听起来您想控制记录的保存。但同时,我认为您已将表单的记录源设置为某个内容。下面演示了如何自己控制记录的保存: 我在设计视图中有以下表单: 在常规视图中,它如下所示:

我有一个表单,有3个不同的文本框和2个按钮->保存和关闭。 其中2个文本框不可见。其中1个不可见的文本框是自动递增整数,第二个文本框的值为表单的onLoad。最后一个需要填充。
我想要什么:当用户单击“关闭”按钮时,表单将关闭,即使可见文本框为空。

我现在拥有的内容:当用户单击“关闭”按钮时,access会出现错误“文本框为空”。

听起来您想控制记录的保存。但同时,我认为您已将表单的
记录源设置为某个内容。下面演示了如何自己控制记录的保存:

我在设计视图中有以下表单:

在常规视图中,它如下所示:

我将表单上的
记录源设置为空

此演示的3个文本框的名称为:
txtField1
txtField2
txtField3

以下是表单背后的代码:

Private Sub cmdSave_Click()
  If (Len(txtField3 & "") <> 0) Then
    DoCmd.SetWarnings False
    DoCmd.RunSQL "INSERT INTO yyy (Field2, Field3) " & _
                 "VALUES ('" & txtField2 & "', '" & txtField3 & "')"
    DoCmd.SetWarnings True

    MsgBox "You have successfully saved the record.", , "SUCCESS"
  Else
    MsgBox "You must provide a value for Field 3 " & _
           "before saving the record." & vbNewLine & vbNewLine & _
           "The record was not saved.", , "MISSING INFORMATION"
  End If
End Sub


Private Sub Form_Load()
  txtField2 = "test"
End Sub


Private Sub cmdClose_Click()
  On Error GoTo Err_cmdClose_Click
  DoCmd.Close
Exit_cmdClose_Click:
  Exit Sub
Err_cmdClose_Click:
  MsgBox Err.Description
  Resume Exit_cmdClose_Click
End Sub
Private Sub cmdSave_Click()
如果(Len(txtField3&“”)为0,则
DoCmd.SetWarnings错误
DoCmd.RunSQL“插入yyy(字段2,字段3)”&_
“值('”&txtField2&“,'”&txtField3&“)”
DoCmd.SetWarnings True
MsgBox“您已成功保存记录。”,“成功”
其他的
MsgBox“您必须为字段3提供一个值”&_
“保存记录之前。”&vbNewLine&vbNewLine&_
记录未保存。“,“缺少信息”
如果结束
端接头
专用子表单_加载()
txtField2=“测试”
端接头
私有子cmdClose_Click()
在出现错误时转到Err\u cmdClose\u单击
文件关闭
退出\u cmdClose\u单击:
出口接头
Err\u cmdClose\u单击:
MsgBox错误说明
继续退出\u cmdClose\u单击
端接头
当表单打开时,
txtField2
自动给出一个值。当用户单击
Save
按钮时,代码检查是否在
txtField3
中输入了值。如果执行了,则执行
INSERT
语句,并显示一条消息,说明记录已成功保存。如果他们没有在
txtField3
中输入值,则会显示一条消息,说明他们在提供值之前无法保存记录

由于未设置表单的
记录源
,因此关闭表单不会有问题

实际上,对于
AutoNumber
字段,您甚至不需要文本框。正如您在上面的示例中所看到的,我在
INSERT
语句中没有传递该消息。数据库将为您处理此问题