首先,谢谢你的帮助。其次,我很确定我的问题的答案就在那里,但我似乎无法找到它。这就是我想要做的。
我有一个基于表Tbl_LedgerEntry的表单。它列出了ID#,日期,作业状态和详细信息。还有第二个表Tbl_LedgerAccouting,它根据Tbl_LedgerEntry ID#列出相关的会计事务(TransID,Check#,Check Amount,Debit / Credit)。对于任何一个ID#,Tbl_LedgerAccounting中只能有一个条目。存在单独的表,因为有几个ID#,其中没有相应的TransID。
我创建了一个按钮,可以将记录添加到Tbl_LedgerAccounting中。但是,如果已经有相应ID#的TransID,那么在用户输入会计信息后它就会出错。我希望在用户输入信息之前出错。基本上,在要求用户输入之前,我需要我的VBA检查相关ID#中是否已存在Tbl_LedgerAccounting中的记录。
表格格式
Tbl_LedgerEntry
ID#(自动编号和键),作业ID,日期,状态,详细信息
Tbl_LedgerAccounting
TransID =来自Tbl_LedgerEntry的ID#(也是此表中的密钥),支票金额,支票号码,借方/贷方
长话短说,我需要在输入请求之前查找TransID并查看它是否存在于Tbl_LedgerAccounting中。
答案 0 :(得分:1)
我能看到这种情况的唯一方法是,当您执行Form_Load事件时,可以检查是否存在记录。也就是说,假设tbl_LedgerAccounting正在通过自己的形式进行接口。请注意,不是通过子表单,而是通过子表单。如果是这样,您可以在Load事件中添加类似的内容:
Dim db as Database
Dim rec as Recordset
Set db = CurrentDB
'I'm assuming you're entering the TransID into a textbox in a prior form (aka OtherFormName)
Set rec = db.OpenRecordset ("Select TransID from Tbl_LedgerAccounting WHERE TransID = " & Forms!OtherFormName.TransID & "")
'If the recordset you return has more than one record...
If rec.EOF = False Then
'TransID is in the table already, so tell the user and then close the form
MsgBox "This TransID already exists"
Me.Close
End If
您可能需要稍微调整一下,但这或多或少都是如何做到的。