表单中 table 字段的 ColumnHistory

ColumnHistory of a table field within a form

我正在尝试利用我在列为 "Asset Tracking." 的 Access 模板中找到的一个想法 其中一个表单,资产详细信息,有一个带有两个字段的评论选项卡,新评论(与来源 table) 中的评论字段和评论历史记录,它在控件源中具有以下代码:

=ColumnHistory([RecordSource],"Comments","[ID]=" & Nz([txtID],0))

该代码允许在评论字段中输入信息,然后在保存并关闭表单后使用该评论更新评论历史记录。这是基于在长文本格式下将仅附加选项设置为 "Yes"。结果看起来像这样:

[Version:  12/18/2019 5:00:22 PM ] Jonathan's Law
[Version:  12/18/2019 5:14:13 PM ] Complete Last Interview
[Version:  12/20/2019 9:35:52 AM ] Hello Paul
[Version:  12/20/2019 10:00:31 AM ] 
[Version:  12/20/2019 11:42:54 AM ] And then she got fired
[Version:  12/20/2019 11:44:07 AM ] And never rehired.

我有一个数据库,最初是为我的事件管理机构开发的(四个 table:调查、调查 - 目标、调查 - 受害者、调查 - Target/Victim Joiner.),我看到这段代码可以很方便地识别指控何时发生变化(即忽视虐待),或者在开发的表格中提供一个评论框,其中包含我自己的评论历史。我尝试了表单中的代码,并在控件源中创建了一个包含以下代码的文本框:

=ColumnHistory("[Investigations - Target/Victim Joiner]","Offenses","[TargetID]=" & Nz([TargetID],0))

=ColumnHistory([RecordSource],"Offenses","[TargetID]=" & Nz([TargetID],0))

最初我试图在主窗体上使用其中任何一个,但我意识到主窗体没有直接获取所需的正确 tables(我得到了一个#Name?错误并且无法补救它),但表单中的一个子表单确实如此。我在我的指控子表单中的文本框中尝试了上述代码,现在收到了#Error 代码。我真的不确定如何进行;我正在寻找一种方法,主要是在一个人的违规行为(以及最终结果)发生变化时创建审计跟踪。我想知道基于我的安排的受害者和目标之间的多对多关系是否也会产生问题(交界处的 TargetID 和 VictimID table 都是 PK 作为多对多的一部分);在这种情况下,我很好奇像下面的代码(它对我不起作用)是否在正确的路径上:

=ColumnHistory([RecordSource],"Offenses","[TargetID]=" & Nz([TargetID],0) & "[VictimID]=" & Nz([VictimID],0))

如有任何帮助,我们将不胜感激;我整个星期五都在努力找出一篇文章,清楚地解释我哪里出了问题,none 到目前为止帮助我建立了联系。我看到其他人纠正的所有错误要么是代码奇迹般地工作但没有解释更改内容的结果,要么是代码中存在较小的语法错误(即缺少引号)。

提问前的研究来源:

How do I display a memo field to a Form in Access

https://access-programmers.co.uk/forums/showthread.php?t=293527

https://answers.microsoft.com/en-us/msoffice/forum/all/creating-a-comments-history-box/56c1b861-f081-442c-aaa5-02b95eae14b9

https://docs.microsoft.com/en-us/office/vba/api/Access.Application.ColumnHistory

条件中需要一个“AND”:

=ColumnHistory("YourTableName","Offenses","[TargetID]=" & Nz([TargetID],0) & " AND [VictimID]=" & Nz([VictimID],0))