我现在有一个显示选择查询子窗体。我想用窗体中的信息更新子窗体中显示的表B的所有记录。子表单不是必需的。我只是用它来确保我的选择查询正确显示。Access 2003中 - 运行基于选择查询更新查询结果
表A有3列(OID,PROJECT_NUMBER,地主)
表B具有4列(OID,PHONENUM,地址,年)
这些表具有一对多的关系。表A中的一个OID涉及许多在表B
Table A
1 A10 Bill
2 B10 Sally
3 A10 Bill
Table B
1 555 123 blah st 2012
1 2013
2 111 456 aaa st 2012
3 2012
形式允许用户输入用于填充表B. 子窗体显示的其中PROJECT_NUMBER,地主,和年份都等于记录的列表信息记录显示形式
For example. If the form is showing
1 A10 Bill
the subform is showing
1 A10 Bill 2012
3 A10 Bill 2012
,当我点击保存命令按钮我想它运行更新查询,但我在使用的SQL命令的问题。
我的选择查询如下:
SELECT B.Project_Number, A.LANDOWNER, B.Year
FROM A INNER JOIN B ON A.OBJECTID = A.OBJECTID;
子窗体设置
链接子字段:PROJECT_NUMBER;年;土地所有者
链接主字段:B.Project_Number;年; A.Landowner
我想:
UPDATE B.PhoneNum, B.Address, B.Year
WHERE items found in my subform
WITH information from my form
是很容易忘记的子窗体和做这一切通过一个单一的更新查询?
UPDATE B SET B.phonenum = [New_Info]![PhoneNumCtrl], B.Address = [New_Info]![AddressCtrl]
WHERE [A]![Landowner] = The same landowner as the OID selected, [A]![Project_Number] = The same project number as the OID selected, [New_Info]![Year] = [B]![Year]
在此先感谢您的帮助!现在
一切工作。我想补充djphatic的答案。
这样做时一定要添加[Forms]![formname]![controlname]
这是一个很好的开始。我完全不知道如何输入我的WHERE条件。 – mkmitchell
是所有的儿童记录正在更新或只是某些?你如何确定哪一个会被更新?你会在你的WHERE子句中使用这个基础。 – mheptinstall
在这个例子中,我试图只更新电话号码和地址。在我的实际数据库中,我有大约20个需要更新的列,还有2个需要保持不变。无论如何引用子表单并使更新查询更容易,或者我应该删除子表单并通过一个单一命令执行整个选择和更新? – mkmitchell