2015-09-25 28 views
1

我想知道是否有任何方法将宏添加到VBA中的AfterUpdate表事件?使用VBA向链接表上的AfterUpdate事件添加宏

Dim Db As Database, tDef As TableDef 
    Set Db = CurrentDb 
    Set tDef = Db.CreateTableDef("ARCH_CALL")  
    tDef.Connect = BuildLinkString(UserName) 
    tDef.SourceTableName = CreateDataSourceString(BuildDataSourceString, "LinkedTableName") 
    Db.TableDefs.Append tDef 

我在每次登录后重新创建链接表,所以我需要重新关联AfterUpdate表事件。

+1

我不知道有任何方法将事件驱动的数据宏(更改前,更新后...)分配给Access中的* linked *表引用。像这样的东西通常必须在实际的表本身上定义:在另一个Access数据库中的“真实”表上的事件驱动的数据宏,或SQL Server(或MySQL,或其他)中的“真实” 。如果你找到一种方法去做你所描述的事情,我会非常感兴趣。 –

+0

Gord,Access 2013让我创建了事件驱动的数据宏,但它似乎没有工作/触发。 – bluerain

+0

你用什么方法创建数据宏?我只是尝试了'Application.LoadFromText acTableDataMacro,...'对现有的链接表,我发现同样的事情:它接受数据宏定义,但宏似乎没有运行。 –

回答

1
DoCmd.RunMacro "MacroName" 

应该这样做。只需在AfterUpdate事件结束时贴上它即可。

编辑:

为什么不只是改变链接,而不是创建一个新表?然后,您不必使用VBA重新分配宏。

Set db = CurrentDB 
Set tdf = db.TableDefs("ARCH_CALL") 
tdf.Connect = "ODBC;DRIVER=SQL Server;SERVER=10.0.0.1;" _ 
    & "UID=testdb;APP=Microsoft Office 2003;WSID=abc;TABLE=dbo.ARCH_CALL" 
tdf.RefreshLink 
+0

谢谢。那么如何将AfterUpdate表事件与使用VBA的表关联?我不知道语法。 – bluerain

+0

尝试更改链接而不是重新创建它。看到我上面的编辑。 –

+0

辉煌。我会试试这个。 – bluerain