2017-06-09 51 views
-2

我有一個複雜的場景,已經抓我的頭在此,希望有人能幫助我這個邏輯:更新表通過匹配 - 訪問,VBA,SQL

我有兩張表,表A有字段1 ,2,3,4,5。表B有字段v,w,x,y,z。

我想要做的邏輯如下: 遍歷表A中的行,對於每一行,如果字段3匹配字段w(在表B中也有多行),請查看字段4匹配(x或y或z),如果有匹配,更新表A的字段5與字段v。

我厭倦了將X,y,z放入數組中,但從那裏繼續如何繼續。我已經看到多個在線的例子來更新記錄集,但不是包含所有這些條件的表中的字段。

這可能嗎?如果是有人給我一個提示?謝謝!

+0

你說什麼領域是Excel稱爲列。當你說「如果有匹配,請更新表A的字段5與字段v」,你的問題就不清楚了。你打算更新整個第5列還是僅僅更新相應的單元格? – Tehscript

回答

0

下面是核心邏輯的一般要點是:遠遠沒有完成,但是這就是結構

For Each rowA In tblA 
    For Each rowB In tblB 
     If rowA!Field3 = rowB!FieldW Then 
     If rowA!Field4 = rowB!FieldX Or rowA!Field4 = rowB!FieldY Or rowA!Field4 = rowB!FieldZ Then 
      rowA!Field5 = rowB!FieldV 
      rowA.Update 
     End If 
     End If 
    Next 
    Next 
+0

感謝您的幫助。 這非常接近我想實現的邏輯。我現在的問題是如何編碼解決方案。因此,例如在第一行中,我需要遍歷各行並指定一行來運行For語句...這是難以完成的部分 – Kwomen

+0

任何想法如何解決這個問題? 「CurrentDb.Execute 「INSERT INTO SundayPositions(EmployeeName)VALUES( '填')WHERE SundayPositions.SundayPositionID.Value = SundayPost!SundayPositionID」 SundayPositions是表名,週日PositionID是字段名稱,SundayPost是記錄集。 – Kwomen

+0

只是刪除'.Value' - INSERT INTO SundayPositions(EmployeeName)VALUES('Filled')WHERE SundayPositions.SundayPositionID = SundayPost!SundayPositionID –