我有几个Access文件,其中包含我要导入一个主文件的一组用户的数据。用户文件中的表每个都配置有Before Change数据宏,每次用户编辑数据时都会添加时间戳。
(“数据宏”类似于SQL Server中的触发器。它们与UI宏不同。有关详细信息,请see this page。)
我想将这些时间戳导入主文件,但由于主文件是用户文件的克隆,因此它还包含同一组数据宏。因此,当我导入数据时,时间戳会更改为导入的时间,这是无益的。
我能找到编辑数据宏的唯一方法是在“设计视图”中打开每个表,然后使用功能区更改设置。必须有一个更简单的方法。
我正在使用VBA代码执行合并,我想知道我是否也可以使用它暂时禁用数据宏功能,直到合并完成。如果有另一种方法可以同时关闭所有文件/表的数据宏,即使在用户的文件/表上也是如此,我也会对此持开放态度。
答案 0 :(得分:2)
禁用代码?不。绕过代码?是的。
使用表/字段作为标志。在导入之前设置状态。检查事件代码中此标志的状态,并确定是否要跳过其余代码。即。
If [tblSkipFlag].[SkipFlag] = false
{rest of data macros}
EndIf
答案 1 :(得分:1)
另一个答案here解释了如何将{几乎 - 未记录的SaveAsText
和LoadFromText
方法与acTableDataMacro
参数一起使用来保存和检索数据宏到a XML格式的文本文件。如果要为每个表保存数据宏XML文本,请替换...
<DataMacro Event="BeforeChange"><Statements>
...与......
<DataMacro Event="BeforeChange"><Statements><Action Name="StopMacro"/>
...然后将更新后的宏写回表中,这可能会使这些宏“短路”。