0

私は職場でプロセスを自動化してきました。私は Access データベース (2010) を使用していますが、非常にうまく機能しています。

私の質問に関連するテーブルは次のとおりです: Inorder と Exceptions Inorder: ここにあるすべての情報は、DeviceID と例外列を含む順序になります。例外: すべての例外はここに書かれています。 、日付と例外 (説明)

Inorder テーブルがいっぱいになると、更新クエリが実行され、すべての Inorder.Exception 列が関連する例外で更新されます (完全に機能し、ここでは問題ありません)。

私が必要とするのは次のとおりです。ユーザーがテーブル Inorder に行を挿入するときは、例外テーブルをチェックする必要があり、例外テーブルに Date と DeviceID の例外がある場合は、Inorder.Exception 列を埋める必要があります。

私が検索したもの: トリガーが Access 2010 MS Access トリガーに存在しないため、Datamacro を使用していますか? 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 その他のいくつかの Microsoft サイト。

複数のセットアップを試しましたが、期待した結果が得られません。Exceptions テーブルから Inorder テーブルに関連データを取得する方法がわかりません。GUIがまったくわかりません....誰か助けてくれませんか?

4

1 に答える 1

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>
于 2013-03-08T14:35:30.137 に答える