2013-03-08 99 views
0

我一直在工作中自动化一个进程。 我使用Access数据库(2010),它的工作真的很好。插入宏后的MS Access

对于我的问题有关的表是:中序和异常 中序:在这里所有的信息,进入到一个订单,包括的DeviceID和异常列 例外:所有的异常都写在这里,我们需要在具有DeviceID,日期和异常的Inorder表(描述)

当Inorder表被填充时,更新查询运行更新每个Inorder.Exception列的相关异常(完美工作,这里没有问题)。

我需要的是: 当用户在表中插入一行时Inorder需要检查异常表,如果Exceptions表中的Date和DeviceID出现异常,Inorder.Exception列必须填写。

我所搜索的内容: 使用Datamacro的,因为在Access 2010中 MS Access trigger? http://msdn.microsoft.com/en-us/library/office/ff973807%28v=office.14%29.aspx Access, After Insert and the missing ID http://office.microsoft.com/en-us/access-help/video-create-a-data-macro-VA100305331.aspx 和其他一些微软的网站不存在触发。

我已经尝试了多种设置,但它并没有给我预期的结果。 我不知道如何从Exceptions表中获取相关数据到Inorder表。 我真的没有得到所有的图形用户界面....有人可以帮助我吗?

+0

访问2010最certanly有表触发器(尝试阅读您的链接更近)。 – 2013-03-08 16:52:47

回答

0

尝试在Inorder表中的Before Change事件中加入此事件。我有点猜测你的桌子结构,但给它一个旋转。

<?xml version="1.0" encoding="UTF-16" standalone="no"?> 
<DataMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"> 
<DataMacro Event="BeforeChange"> 
<Statements> 
    <ConditionalBlock> 
     <If> 
      <Condition>DCount("ExceptionID","Exceptions","DeviceID =" &amp; [Inorder].[DeviceID] &amp; "Date =#" &amp; [Inorder].[Date] &amp; "#")&gt;0</Condition> 
     <Statements><Action Name="SetField"> 
      <Argument Name="Field">Inorder.Exception</Argument> 
      <Argument Name="Value">DLookUp("ExceptionID","Exceptions","DeviceID =" &amp; [Inorder].[DeviceID] &amp; "Date =#" &amp; [Inorder].[Date] &amp; "#")</Argument> 
     </Action> 
     </Statements> 
     </If> 
     </ConditionalBlock> 
    </Statements> 
</DataMacro> 
</DataMacros>