2012-07-03 85 views
0

我在Update語句中遇到了一些困難。Access 2010 SQL Update cmd

UPDATE DownPeriod 
SET 
DownPeriod.EquipmentID = ? ?? ?? ? ?? ?? ? ?, 
DownPeriod.DownDate = Forms!Edit!EditDownDateBox, 
DownPeriod.DownTime = Forms!Edit!EditDownTimeBox, 
DownPeriod.[UpDate] = Forms!Edit!EditUpDateBox, 
DownPeriod.UpTime = Forms!Edit!EditUpTimeBox, 
DownPeriod.isScheduled = Forms!Edit!EditSchedCheck, 
DownPeriod.isUnscheduled = Forms!Edit!EditUnschedCheck, 
DownPeriod.Comments = Forms!Edit!EditCommentsDropDown 
WHERE DownPeriod.DownPeriodID =Forms!Edit!RecordHistorySubform.Form!DownPeriodID; 

問號是在哪裏我有困難,我不知道該怎麼把。

如果我刪除該語句,所有關於更新的其他信息都可以正常工作,所以我知道即時通訊的正確方向。與EquipmentID的區別在於,我基於另一個表項的輸入獲取了此值。詳細說明用戶選擇設備標題,這是我的設備表中與唯一ID相關的另一個字段。

到目前爲止,我已經嘗試使用DLookup 選擇statment和 使用內( 「[EquipmentID]」, 「設備」, 「[標題] =窗體!編輯!EditEquipmentDropDown」)加入 我在虧損和需要幫助PLZ! 謝謝!

+0

這是一個編輯表單,允許用戶查看記錄並更改特定記錄中的任何數據。在這種情況下,DownPeriod表存儲設備表中的外鍵EquipmentID。然而,編輯框顯示更多信息的設備標題,設備表的另一個字段,而不是一些無意義的ID標籤。所以我想讓EquipmentID改變,但用戶看起來像是在改變標題。 – HelloWorld

回答

1

你說用戶正在從下拉列表中選擇標題。這些下拉列表中應該有一個行來源:

SELECT ID, Title FROM Equipment 

ID爲隱藏列。那麼你的更新應該是:

DownPeriod.EquipmentID = Forms!Edit!EditTitleDropDown 

順便說一句,我懷疑你正在做的,你需要做的,使一個MS Access形式的工作要做更多的工作。

+0

似乎它應該工作,但它沒有,我不明白爲什麼。我不認爲它太複雜我有用戶選擇一個開始和結束日期。子窗體填充了一個然後他們可以選擇一個記錄,在這個記錄上填充記錄,並允許編輯。 – HelloWorld

+0

下拉的行來源和綁定的列是什麼? – Fionnuala

+0

偶數使用立即窗口給出正確的值,但它似乎並沒有在查詢中接受 – HelloWorld

1

如果它是一個新的唯一ID,你需要一個INSERT。如果它已經存在,則應將其作爲WHERE子句的一部分加入。

WHERE DownPeriod.DownPeriodID = Forms!Edit!RecordHistorySubform.Form!DownPeriodID AND DownPeriod.EquipmentID = Forms!Edit!EditEquipmentDropDown;

+0

這不是一個新的記錄,那是爲了別的。我試圖在WHERE中添加其他標準,但未能奏效。 Equipment.Title = Forms!Edit!EditEquipmentDropDown是標準。 – HelloWorld

+0

你會這樣做嗎? – gooddadmike

+0

它沒有工作:( – HelloWorld