Ms access Ms Access数据宏返回记录集

Ms access Ms Access数据宏返回记录集,ms-access,vba,ms-access-data-macro,Ms Access,Vba,Ms Access Data Macro,我正在为我的一个Access表的after insert事件使用数据宏。在这个数据宏中,我使用SetLocalVar调用用vba编写的函数之一,将相同的插入记录集插入SQL数据库。这就是SetLocalVar中的表达式当前的样子 AfterInsertMacro("TblLotStatus",[LotStatusID], [NextStatus], [Status], [Printed], [Active], [AvailableForPull] ) 现在,我不能返回记录集、集合或数组等,而不

我正在为我的一个Access表的after insert事件使用
数据宏
。在这个数据宏中,我使用
SetLocalVar
调用用vba编写的函数之一,将相同的插入记录集插入SQL数据库。这就是
SetLocalVar
中的
表达式当前的样子

AfterInsertMacro("TblLotStatus",[LotStatusID], [NextStatus], [Status], [Printed], [Active], [AvailableForPull] )
现在,我不能返回记录集、集合或数组等,而不是将每一列作为单独的变量返回吗

基本上我在寻找这样的东西(用C语言编写)

或者任何一种看起来像的表情

AfterInsertMacro("TblLotStatus", [Inserted Recordset])

如果它是access窗体中的宏和/或代码,则它不是VB.NetAFAIK,在VBA中,数组的每个元素都必须通过单独的引用进行设置,但使用Split()函数填充一维数组除外。您当然可以使用VBA传递和返回记录集-甚至是子/函数调用中的函数或任何by ref参数。这里唯一真正的限制是将这样的数据类型返回到数据宏-这是不允许的。然而,一旦您跳入VBA,那么为什么不让VBA完成所有工作,从而很少或根本不需要返回这样的记录集呢?因此,VBA肯定允许传递集合、数组或记录集(以及通过ref或val)。但是,数据宏不支持此类数据类型。您完全可以将新的PK id从after insert宏传递给VBA函数。但是,如前所述,VBA函数仅在客户端访问时工作(因为它包含VBA)。如果Access客户端不使用VBA,则从其他任何地方使用的数据宏甚至都不会假定已安装VBA。如果您不使用Access作为客户端,那么我看不出有什么理由使用ACE引擎,并建议在这种情况下使用SQL server作为数据存储。刚刚测试-您是正确的,在完成后插入事件之前,宏外部的记录不可用。
AfterInsertMacro("TblLotStatus", [Inserted Recordset])