I am trying to figure out how to import Data Macros to my tables in Microsoft Access 2019/365. I have a lot of tables/columns that I want to add a data macro to for Audit Trail creation.
If I copy a macro from the Macro Design screen in MS Access and paste it into a text editor (i.e. Notepad++) I get the XML code for the macro. I would like to be able to modify this code and use it in another table.
I cannot figure out how to import this code back into Access. When I try to copy and paste it back in - I receive the following error message:
Microsoft Access could not understand the macro format.
This is the XML code that I am using
<DataMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"><DataMacro Event="AfterInsert"><Statements><CreateRecord Collapsed="true"><Data Alias="AT"><Reference>z_sys_tblAuditTrail</Reference></Data><Statements><Action Name="SetField"><Argument Name="Field">AT.TableName</Argument><Argument Name="Value">"_ref_tblOfficeLocatons"</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.RecordID</Argument><Argument Name="Value">[_ref_tblOfficeLocatons].[MailboxID]</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.ChangeBy</Argument><Argument Name="Value">fDisplayUpdateUser()</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.FieldName</Argument><Argument Name="Value">"MailboxID"</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.NewValue</Argument><Argument Name="Value">[_ref_tblOfficeLocatons].[MailboxID]</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.ChangeDate</Argument><Argument Name="Value">Now()</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.Action</Argument><Argument Name="Value">"I"</Argument></Action></Statements></CreateRecord></Statements></DataMacro></DataMacros><DataMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"><DataMacro Event="AfterInsert"><Statements><CreateRecord Collapsed="true"><Data Alias="AT"><Reference>z_sys_tblAuditTrail</Reference></Data><Statements><Action Name="SetField"><Argument Name="Field">AT.TableName</Argument><Argument Name="Value">"_ref_tblOfficeLocatons"</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.RecordID</Argument><Argument Name="Value">[_ref_tblOfficeLocatons].[MailboxID]</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.ChangeBy</Argument><Argument Name="Value">fDisplayUpdateUser()</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.FieldName</Argument><Argument Name="Value">"Building"</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.NewValue</Argument><Argument Name="Value">[_ref_tblOfficeLocatons].[Building]</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.ChangeDate</Argument><Argument Name="Value">Now()</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.Action</Argument><Argument Name="Value">"I"</Argument></Action></Statements></CreateRecord></Statements></DataMacro></DataMacros><DataMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"><DataMacro Event="AfterInsert"><Statements><CreateRecord Collapsed="true"><Data Alias="AT"><Reference>z_sys_tblAuditTrail</Reference></Data><Statements><Action Name="SetField"><Argument Name="Field">AT.TableName</Argument><Argument Name="Value">"_ref_tblOfficeLocatons"</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.RecordID</Argument><Argument Name="Value">[_ref_tblOfficeLocatons].[MailboxID]</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.ChangeBy</Argument><Argument Name="Value">fDisplayUpdateUser()</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.FieldName</Argument><Argument Name="Value">"Room"</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.NewValue</Argument><Argument Name="Value">[_ref_tblOfficeLocatons].[Room]</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.ChangeDate</Argument><Argument Name="Value">Now()</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.Action</Argument><Argument Name="Value">"I"</Argument></Action></Statements></CreateRecord></Statements></DataMacro></DataMacros><DataMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"><DataMacro Event="AfterInsert"><Statements><CreateRecord Collapsed="true"><Data Alias="AT"><Reference>z_sys_tblAuditTrail</Reference></Data><Statements><Action Name="SetField"><Argument Name="Field">AT.TableName</Argument><Argument Name="Value">"_ref_tblOfficeLocatons"</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.RecordID</Argument><Argument Name="Value">[_ref_tblOfficeLocatons].[MailboxID]</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.ChangeBy</Argument><Argument Name="Value">fDisplayUpdateUser()</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.FieldName</Argument><Argument Name="Value">"RoomDescr"</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.NewValue</Argument><Argument Name="Value">[_ref_tblOfficeLocatons].[RoomDescr]</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.ChangeDate</Argument><Argument Name="Value">Now()</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.Action</Argument><Argument Name="Value">"I"</Argument></Action></Statements></CreateRecord></Statements></DataMacro></DataMacros><DataMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"><DataMacro Event="AfterInsert"><Statements><CreateRecord Collapsed="true"><Data Alias="AT"><Reference>z_sys_tblAuditTrail</Reference></Data><Statements><Action Name="SetField"><Argument Name="Field">AT.TableName</Argument><Argument Name="Value">"_ref_tblOfficeLocatons"</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.RecordID</Argument><Argument Name="Value">[_ref_tblOfficeLocatons].[MailboxID]</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.ChangeBy</Argument><Argument Name="Value">fDisplayUpdateUser()</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.FieldName</Argument><Argument Name="Value">"RoomType"</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.NewValue</Argument><Argument Name="Value">[_ref_tblOfficeLocatons].[RoomType]</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.ChangeDate</Argument><Argument Name="Value">Now()</Argument></Action><Action Name="SetField"><Argument Name="Field">AT.Action</Argument><Argument Name="Value">"I"</Argument></Action></Statements></CreateRecord></Statements></DataMacro></DataMacros>
Any assistance that you can provide would be grateful. All the searches that I have done talk about using Macros to import data from other sources... none talk about importing the actual macro itself.