查看目标表中最近追加的记录



我创建了一个追加查询,之后我希望显示新追加的记录(在目标表中填写ID autonumber(。

我尝试创建一个选择查询,将原始表链接到目标表,但这给我带来了问题,因为空字段或空白字段不匹配,并且唯一明确填写的字段之一(名称(可能与以前的记录匹配(即,这是一个合同表,合同可能具有相同的名称,终止,然后使用相同的名称创建新合同(。

是否有任何方法(可能使用VBA(可以查看目标表中的最大ID号,运行追加查询,然后显示目标表中ID高于上一个最大值的所有记录?我知道如何使用VBA运行追加查询,但在查看最近追加的记录时遇到问题。

出现编译错误(参数数量错误或属性赋值无效(-我对VBA还很陌生,所以可能我做错了。这是我的代码:

Private Sub Ctl310_apqry_Click()
Dim lngID As Long
lngID = Nz(DMax("ContractID", "Contracts"), 0)
CurrentDb.Execute "310 apqry Add New Contract Records"
DoCmd.OpenTable "Contracts", acViewNormal, acEdit, "ContractID>" & lngID
End Sub

是的,VBA可以查找最大ID(DMax((可以做到这一点(,运行追加查询,打开过滤到大于前一个最大ID的ID的记录的查询/表单/报告。这确实假设自动编号ID是正的并且在增加,这不应该是一个保证,尽管我从未见过其他情况。

非常简单的代码示例:

Dim lngID As Long
lngID = Nz(DMax("ID", "tablename"), 0)
DoCmd.OpenQuery "queryname"
DoCmd.OpenForm "formname", , , "ID>" & lngID

如果您喜欢打开已筛选的查询,选项:

  1. 查询中的动态参数-在具有最大ID的表单上设置一个未绑定的文本框,然后查询可以引用该文本框或代码设置一个TempVar,查询引用该

  2. 在VBA中使用QueryDefs修改具有筛选条件的查询对象

最新更新