【发布时间】:2019-11-17 14:17:03
【问题描述】:
我在 Windows 10 电脑上使用 MS Access DB 365。 我有一个我已经放在一起的代码。现在承认我不是专家,但这在一定程度上是有效的。我附上了一些图片和我的代码来解决这个问题。我有一个供员工登录的登录表。在该表单上,我有两个子表单和两个未绑定的文本框。一个文本框 (txt_EDPI) 是用户将输入他们的员工编号。然后它查询Source Object(sfrm_User_Info)的第一个子表单(subUserList),这个子表单是隐藏的。我的第二个子表单(subSignIn)的源对象是(sfrm_Sign_In_List)是可见的,它是一个连续的表单。
目标是,当用户在 (txt_EDPI) 框中输入他们的号码,然后单击登录按钮时,它将定位 (sfrm_User_Info),并将一条记录带到下一个子表单 (sfrm_Sign_In_List)。我现在唯一的问题是,如果我的数据库中不存在该用户,我会收到错误消息。我需要帮助编写脚本以及在我当前的脚本中放置它的位置。现在,如果有更好的方法可以做到这一点,请告诉我。我的脚本在下面。
Private Sub cmd_SignIn_Click()
Dim SQL As String
Dim db As Database
Dim rec As Recordset
SQL = "SELECT tbl_User_Info.EDPI, tbl_User_Info.[User Name]," _
& "tbl_User_Info.[User Email]," _
& "tbl_User_Info.Office FROM tbl_User_Info " _
& "Where EDPI LIKE '*" & Me.txt_EDPI & "*'"
Me.subUserList.Form.RecordSource = SQL
Me.subUserList.Form.Requery
Set db = CurrentDb
Set rec = db.OpenRecordset("Select * from tbl_Sign_In_List")
rec.AddNew
rec("EDPI") = Me.subUserList.Form.[EDPI]
rec("User Name") = Me.subUserList.Form.[User Name]
rec("User Email") = Me.subUserList.Form.[User Email]
rec("Office") = Me.subUserList.Form.[Office]
rec("Sign In Date") = Me.txt_MDate
rec.Update
Set rec = Nothing
Set db = Nothing
Me.subSignIn.Form.Requery
Me.txt_EDPI.Value = ""
DoCmd.GoToControl "cmd_SignIn"
DoCmd.GoToControl "txt_EDPI"
End Sub
表单的设计视图
表单的表单视图
【问题讨论】: