0

我一直在自动化工作流程。我使用 Access 数据库 (2010),它工作得非常好。

对于我的问题,相关表是: Inorder 和 Exceptions Inorder:此处的所有信息都按顺序排列,包括 DeviceID 和异常列 Exceptions:所有异常都写在这里,我们需要在带有 DeviceID 的 inorder 表中, 日期和异常(描述)

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

我需要的是以下内容:当用户在表中插入一行时,需要检查异常表,如果异常表中的日期和设备 ID 存在异常,则必须填写 Inorder.Exception 列。

我搜索过的内容:使用 Datamacro,因为 Access 2010 MS Access 触发器中不存在触发器? http://msdn.microsoft.com/en-us/library/office/ff973807%28v=office.14%29.aspx 访问,插入后和缺少的 ID http://office.microsoft.com/en-us /access-help/video-create-a-data-macro-VA100305331.aspx 和其他几个微软网站。

我尝试了多种设置,但它没有给我预期的结果。我不知道如何从 Exceptions 表中获取相关数据到 Inorder 表。我根本没有真正得到GUI....有人可以帮助我吗?

4

1 回答 1

0

试着把它放在Before ChangeInorder桌子上的活动中。我有点猜测你的表格结构,但试一试。

<?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>
于 2013-03-08T14:35:30.137 回答