0

首先,谢谢你帮助我。其次,我很确定我的问题的答案就在那里,但我似乎找不到。这就是我想要做的。

我有一个基于表 Tbl_LedgerEntry 的表单。它列出了 ID#、日期、作业状态和详细信息。第二个表 Tbl_LedgerAccouting 列出了基于 Tbl_LedgerEntry ID# 的相关会计交易(TransID、Check #、Check Amount、Debit/Credit)。对于任何一个 ID#,Tbl_LedgerAccounting 中只能有一个条目。存在单独的表是因为有几个 ID# 没有对应的 TransID。

我创建了一个将记录添加到 Tbl_LedgerAccounting 的按钮。但是,如果已经有对应 ID# 的 TransID,那么在用户输入会计信息后我会出错。我希望它在用户输入信息之前出错。基本上,在询问用户输入之前,我需要我的 VBA 来检查 Tbl_LedgerAccounting 中是否已经存在相关 ID# 的记录。

表格格式

Tbl_LedgerEntry

ID#(自动编号和密钥)、JobID、日期、状态、详细信息

Tbl_LedgerAccounting

TransID=ID# from Tbl_LedgerEntry(也是此表中的键)、支票金额、支票号码、借方/贷方

长话短说,我需要在输入请求之前查找 TransID 并查看它是否存在于 Tbl_LedgerAccounting 中。

4

1 回答 1

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

您可能需要稍微调整一下,但这或多或少是如何做到的。

于 2013-11-12T13:19:32.963 回答