Access2010中的数据宏:触发器?

one*_*hen 4 ms-access ms-access-2010

我听说即将推出的Access2010具有数据宏功能,这将首次为Access数据引擎表添加类似触发器的功能.有没有人对此有进一步的细节?例如,他们可以用代码创建(ACEDAO,SQL DDL等)吗?如果从Access用户界面外部修改数据,例如通过ODBC,OLE DB等,数据宏是否会运行?

Alb*_*lal 9

好的,多一点信息.

如果从Access用户界面外部修改数据,例如通过ODBC,OLE DB等,数据宏是否会运行?

是的,它确实.

这些真正的触发器位于数据引擎级别.因此,使用ado,dao甚至在ms-access中编辑表视图中的表意味着将触发触发器.这些触发器还包括您甚至没有在计算机上安装ms-access的方案.

您当然需要安装JET(对于本文的其余部分,我将使用术语ACE).请记住,只有在访问2007中,访问团队才能获得JET的所有权.他们现在可以根据自己的需要自由地增强这种引擎.我们在2007年开始看到ACE的一些变化,现在我们将看到2010年的更多变化.其中一些功能对我来说仍然是NDA ......但我会在这里尽可能多地溢出.

例如,他们可以用代码创建(ACEDAO,SQL DDL等)吗?

在代码中,perahp,但不是SQL ddl.触发器不是sql命令.请记住,对于Oracle或市场上的Sql server或MOST系统,他们都倾向于为他们的触发器提供自己的OWN自定义语言.

在新的ACE中,您将编写所谓的数据宏.您可以在ms-access中使用宏编辑器.这些是老式的访问宏,但编辑器已经完全重新完成.新的宏也有子程序,循环,if then else块和一种记录集.请记住,我们已经获得了在2007宏中创建临时变量的功能.在2010年,这扩展到包括局部变量和以上新功能.

现有宏命令的语法与先前版本相同.但是,我们有一个新的光滑的IDE以及所有上面添加的酷命令.因此,我们现在有两种类型的宏.UI宏(如前所述)和现在新的所谓数据宏.表级宏可以向屏幕显示错误消息是没有意义的.因此记录的任何错误都会进入表格.还有一些新的日志记录命令可以让您将自己的自定义错误写入该表.这里设计精美简约.这是错误日志表的样子:

alt text http://www.kallal.ca/test/merrors.png

在一个巨大的IDE世界中,巨大的框架工作和可怕的巨大代码库需要更新表中的简单行,我可以说数据宏是最令人耳目一新的功能.他们感觉就像原来的dbaseII一样.它们非常简单,但却充满了致命的力量,因为它们在桌面上运行.

例如,这是一个数据宏,它将维护一个表的库存总计.在这个例子中,我将假设存在主库存记录.然后我们有一个订单详细信息表.如果用户在订单表中编辑任何值,我们希望主表自动更新库存水平.

所以我们有:我有两张桌子

tblFruits:    main data fruit inventory table
id         (autonumber)
Fruit text
OnHand    (number value of fruit in inventory)

tblFruitsOrder
id       (autonumber)
Fruit_id (FK to tblFruts.ID)
QtyOrder (number of fruit to order)
Run Code Online (Sandbox Code Playgroud)

这是一个简单的测试

因此,我们将在tblFruitsOrder中设置一个触发器,当QtyOrder字段被编辑或修改时,该触发器将更新+维护tblFruits中的库存水平.

这是宏的样子:

alt text http://www.kallal.ca/test/macro1.png

注意上面的内容非常简单.请注意,在IDE中,如果单击代码的某个部分,则会获得旧样式宏类型编辑,您可以在其中输入命令的值(这类似于2010年之前,但现在参数和编辑发生在代码,而不是以前版本中屏幕底部显示的面板).

这是另一个屏幕截图,我在其中玩能够循环并调用子程序.

alt text http://www.kallal.ca/test/macro22.png

在上面我们可以使用msgbox等,因为这不是表级宏.因此,在编写表级宏而不是常规宏时,可以自动限制可用的命令.我们用来区分两种类型宏的术语是UI宏和数据宏.

以上是关于我在公共场合可以谈论的所有内容.然而,关于这些宏几乎没有更多关于这些宏的真正特征,我还不能公开讨论,因为我仍然在这些功能的NDA下.但是有更多的惊喜来到这里.

以下是我们拥有的表触发器类型的屏幕截图:

alt text http://www.kallal.ca/test/macro3.png