插入宏后的MS Access

时间:2013-03-08 12:52:37

标签: ms-access

我一直在自动化工作流程。 我使用Access数据库(2010),它的工作真的很棒。

对于我的问题,相关表格是:有序和例外 Inorder:此处的所有信息都包含在订单中,包括DeviceID和异常列 例外:所有异常都写在这里,我们需要在inorder表中使用DeviceID,Date和Exception(description)

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

我需要的是以下内容: 当用户在表中插入一行时,需要检查例外表,如果日期和例外表中的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表。 我根本没有真正获得GUI ....有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

尝试将此信息放在Before Change表格的Inorder事件中。我有点猜测你的桌子结构,但是给它一个旋转。

<?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>