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