0

我在更新声明时遇到了一些困难。

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("[EquipmentID]", "Equipment", "[Title] = Forms!Edit!EditEquipmentDropDown") 选择语句并使用内部连接我不知所措,需要帮助!谢谢!

4

2 回答 2

1

如果它是一个新的唯一 ID,则需要一个 INSERT。如果它已经存在,则应将其作为 WHERE 子句的一部分。

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

于 2012-07-03T18:28:39.297 回答
1

您说用户正在从下拉列表中选择标题。下拉列表应该在这些行上有一个行源:

  SELECT ID, Title FROM Equipment

以 ID 作为隐藏列。您的更新应该是:

 DownPeriod.EquipmentID = Forms!Edit!EditTitleDropDown

顺便说一句,我怀疑您需要做更多的工作才能使 MS Access 表单正常工作。

于 2012-07-03T18:49:33.803 回答