2017-02-14 38 views
1

是否有任何文章或其他形式的信息可以從包含多個值的記錄的字段檢索/比較數據?對「允許多個值」的記錄進行SQL訪問

enter image description here

this post建議我嘗試通過SQL語句來代替我的方式對長碼,但我不能管理,使其運行:

Dim SQL As String 
SQL = "UPDATE 12Dec " _ 
& "Set [WPRC Part] = 'YES' " _ 
& "WHERE " _ 
& "12Dec.PartNo.value in (SELECT SparePartNo FROM WPRC_Parts_List) " _ 
& "OR 12Dec.PartNo.value in (SELECT SerialPartNo FROM WPRC_Parts_List) " 
DoCmd.RunSQL SQL 

在上面代碼:

  • 12Dec是包含字段WPRC部分和PARTNO(字段,它允許在它的R多個值的表ecords)
  • WPRC_Parts_List是包含字段SpartPartNo和SerialPartNo
+0

什麼是錯誤?你可以在最後一行之前寫上'Debug.print SQL',看看你得到了什麼?然後,只需將SQL複製並粘貼到Access中的SQL中,並查看發生了什麼? – Vityata

回答

1

你的代碼產生這個SQL表:

UPDATE 12Dec Set [WPRC Part] = 'YES' WHERE 12Dec.PartNo.value in (SELECT SparePartNo FROM WPRC_Parts_List) OR 12Dec.PartNo.value in (SELECT SerialPartNo FROM WPRC_Parts_List)

你肯定12Dec.PartNo.value是列名?看看這裏: http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_in

+0

是的,我的意思是多值字段的名稱是_PartNo_然後我得到的錯誤是運行時錯誤3075:查詢表達式12Dec.PartNo.value中的語法錯誤(缺少運算符)在.... WPRC_Parts_List) – Seb

+1

感謝您的鏈接,因爲它允許我找到錯誤。基本上我只是刪除了WHERE部分中的12Dec,它運行正常。奇怪的是,我相信我以前試過,並沒有工作...所以'更新12Dec設置[WPRC部分] ='是'在(SELECT SparePartNo FROM WPRC_Parts_List)PartNo.value中的位置或PartNo.value (SELECT SerialPartNo FROM WPRC_Parts_List)' – Seb

+1

基本上,當我寫了'12Dec.PartNo.value'時,我認爲'.value'是錯誤的部分......但仍然很高興。 :) – Vityata