2013-03-08 101 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>