Nen*_*Nen 2 ms-access access-vba ms-access-data-macro
我是MS Access的新手,请原谅我这个简单的问题,但我对目前的问题非常困惑.
所以我希望在表收到其中一个字段的更新后运行VBA函数.我所做的是:
在CREATE-> Macro下创建一个名为Macro_update的宏,其中包含操作RunCode,其参数是我希望运行的VBA函数.该功能没有错误.
选择我的表,然后在表 - >更新后,我写道
IF [Old].[status]=0 And [status]=1 THEN
RunDataMacro
MacroName Macro_update
Run Code Online (Sandbox Code Playgroud)但是在我更新我的表中的状态字段之后没有发生任何事情...我怀疑在第2步中我的操作是RunDataMacro,但我实际上正在运行宏(有区别吗?)...任何帮助都是不胜感激!
您现在可以使用数据宏使其在本地工作.这意味着该表将需要存储在Access数据库中.
如果您的Web服务实际上没有使用Access Runtime与访问数据库容器进行交互,则数据宏可能无法正确触发或未按预期触发.你的旅费可能会改变.
如果您以后将数据库迁移到SQL服务器(MySQL,Microsoft SQL,PostgreSQL),那么您的数据宏将需要在SQL服务器上本机实现为触发器.
现在,我正在编写下面的一些说明,以演示如何在单个Access数据库中本地从数据宏调用VBA函数:
创建VBA功能 这将是您要从数据宏调用的功能.
码:
Public Function VBAFunction(OldValue As String, NewValue As String) As String
Debug.Print "Old: " & Chr(34) & OldValue & Chr(34);
Debug.Print vbTab;
Debug.Print "New: " & Chr(34) & NewValue & Chr(34)
VBAFunction = "Worked"
End Function
Run Code Online (Sandbox Code Playgroud)
创建数据宏 (这里将更具描述性,因为人们很容易迷失在这里)
将Name设置为任意值,例如:MyLocalVar
将Expression设置为以下内容
表达文字:
=VBAFunction([Old].[FieldName],[FieldName])
Run Code Online (Sandbox Code Playgroud)
测试它:创建更新查询
接下来,您需要创建一个更新查询,该更新查询在包含您刚刚创建的数据宏的表上执行更新.
要对此进行测试,您只需将所有记录中的字符串字段更新为一个值即可.
UPDATE [TestTable] SET [TestText] = "Test"
Run Code Online (Sandbox Code Playgroud)
按Control + G调出立即窗口.您会注意到为每个更新的记录触发了数据宏.
| 归档时间: |
|
| 查看次数: |
8228 次 |
| 最近记录: |