【问题标题】:Access Trigger - Create table row on update访问触发器 - 在更新时创建表行
【发布时间】:2016-08-11 17:44:59
【问题描述】:

我想知道是否有人可以解决我目前在使用 Access 数据库时遇到的问题。

数据库有许多表。添加新记录后,我想在另一个表中创建一个新条目(如果它不存在,则自动复制帐户名称和阶段) - 节省其他人必须手动输入它并最大限度地减少错误数据输入的风险。

我尝试了一个 onChange 更新函数,虽然它有效,但它不会检查条目当前是否存在于另一个表中,它只是添加它。

关于实现这个有什么想法吗?

【问题讨论】:

  • 您可以使用数据宏在另一个表中创建新记录。见this answer。此处的优点是,无论创建记录的形式是什么,或者即使从外部 Access 更改/创建记录,您的逻辑都会执行。
  • 完美,非常感谢!
  • 抱歉@Brad 我刚刚意识到,当第一个表中的字段发生更改时,它会创建一个新行,而不是编辑第二个表中的现有行。您是否知道可以编写数据宏以更改新创建的行而不是在另一个表中添加新行的方法?
  • 使用LookupRecord数据宏代替CreateRecord

标签: ms-access vba ms-access-2007


【解决方案1】:

如果你可以使用 VBA,这个逻辑应该可以工作。

IF ISNULL(DLOOKUP("FieldName","TableName","WHERE CONDITION")) = True Then
  DoCmd.OpenQuery "QUeryNameForAppendRecord"
Else:
  DoCmd.OpenQuery "QueryNameForUpdateRecord"
End If

DLookup 正在检查记录是否存在,因此相应地替换字段和表名称。使用 Where 条件指定您要查找的记录,您需要使用它来引用表单控件。有关语法/引用的更多帮助,请参见链接。

DLookup Function

【讨论】:

  • 太棒了!非常感谢:)
猜你喜欢
  • 2014-06-19
  • 2011-06-16
  • 2017-09-23
  • 2018-01-25
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 2012-04-13
  • 2019-05-03
相关资源
最近更新 更多