我正在尝试利用我在列为“资产跟踪”的 Access 模板中找到的想法。其中一种形式,资产详细信息,有一个带有两个字段的评论选项卡,新评论(与源表中的评论字段相关联)和评论历史,它在控制源中具有以下代码:
=ColumnHistory([RecordSource],"Comments","[ID]=" & Nz([txtID],0))
该代码允许人们在评论字段中输入信息,然后在保存并关闭表单后使用该评论更新评论历史记录。这是基于在长文本格式下将仅附加选项设置为“是”。结果看起来像这样:
[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.
我有一个数据库,我最初为我的机构开发事件管理(四个表:调查、调查 - 目标、调查 - 受害者、调查 - 目标/受害者加入者。有关更多详细信息,请参阅上一个问题) ,并且我看到这段代码可以方便地识别指控何时发生变化(即忽视虐待),或者在开发的表单中提供一个包含我自己的评论历史的评论框。我尝试了表单中的代码,并在控制源中创建了一个包含以下代码的文本框:
=ColumnHistory("[Investigations - Target/Victim Joiner]","Offenses","[TargetID]=" & Nz([TargetID],0))
或者
=ColumnHistory([RecordSource],"Offenses","[TargetID]=" & Nz([TargetID],0))
最初我试图在主窗体上使用其中任何一个,但我意识到主窗体并没有直接获取所需的正确表(我收到 #Name? 错误并且无法修复它),但是其中的一个子窗体形式做到了。我在我的指控子表单中的文本框中尝试了上述代码,现在收到#Error 代码。我真的不确定如何进行;我正在寻找一种方法,本质上是创建对一个人的罪行(以及最终结果)更改的审计跟踪,因为它们发生了变化。我想知道基于我的安排的受害者和目标之间的多对多关系是否也会产生问题(联结表上的 TargetID 和 VictimID 都是 PK 作为多对多的一部分);在这种情况下,我很好奇是否有类似下面的代码(它没有
=ColumnHistory([RecordSource],"Offenses","[TargetID]=" & Nz([TargetID],0) & "[VictimID]=" & Nz([VictimID],0))
对此的任何帮助将不胜感激;我整个星期五都在试图找出一篇清楚地解释我哪里出错的文章,但到目前为止还没有一篇文章能帮助我建立联系。我看到其他人正确的所有错误要么是代码奇迹般地工作而没有解释更改内容的结果,要么是代码中存在小的语法错误(即缺少引号)。
提问前的研究来源:
https://access-programmers.co.uk/forums/showthread.php?t=293527
https://docs.microsoft.com/en-us/office/vba/api/Access.Application.ColumnHistory