删除带有长文本的宏后
Posted
技术标签:
【中文标题】删除带有长文本的宏后【英文标题】:After Delete Macro with Long Text 【发布时间】:2018-03-29 07:23:53 【问题描述】:我有一个表 LABELS,其中包含 CODE(短文本)、VALUE(短文本)和DESCRIPTION(长文本)列。
我还有一个包含相同列的表 LABELS_HISTORY。
我在 LABELS 上创建了 After Delete 宏,它在 LABELS_HISTORY 中创建一条新记录,其中包含 LABELS 中已删除记录的值。
如果我只将它用于 CODE 和 VALUE(它们是短文本),它可以正常工作。但是,如果我尝试也复制DESCRIPTION,它不起作用(没有错误,只是没有在LABELS_HISTORY中创建记录)。
这是宏的样子:(我无法嵌入图像 - 新手)
https://i.stack.imgur.com/igKlh.png
如果您不想打开链接:
标签:删除后: 在 LABELS_HISTORY 中创建记录
设置字段
Name Description
Value = [Old].[CODE]
它适用于短文本字段。唯一的问题是长文本。
访问 2016
【问题讨论】:
请使用imgur上传图片,最好使用内置工具 我需要 10 个声望才能添加图片 :( 您仍然可以使用内置工具上传图片... 哦,谢谢。我上传了它并添加了链接i.stack.imgur.com/igKlh.png 【参考方案1】:无法通过[Old].
获得长文本值。据我所知,没有变通办法。
这确实会产生错误。在您的 USyApplicationLog 表中,应该记录一个错误,其描述如下:
“[Old].[DESCRIPTION]”值不可用,因为该字段的类型为备忘录、富文本、超链接或 OLE 对象。
(备忘录是长文本字段的旧名称,因此这些字段不可用)。
您还可以在 MS SQL Server 中看到这种行为,其中 Text 和 NText 类型的字段的先前值在触发器中也不可用。
一条建议:始终将 Current 值记录在您的变更表中,而不是 Previous 值。这样一来,您始终拥有每条记录的完整历史记录,并且不会在这些事情上遇到麻烦。
【讨论】:
以上是关于删除带有长文本的宏后的主要内容,如果未能解决你的问题,请参考以下文章