更新选择访问权限

时间:2015-02-02 11:51:47

标签: ms-access select sql-update

这是与MS Access 2010相关的问题。

是否可以使用短路径(A)并使用SELECT语句编写UPDATE语句以捕获相关值,或者我必须走长路径(B)并且我首先需要查询数据通过SELECT语句,我将保存为查询,然后在我的UPDATE语句中引用此保存的查询?

这是(A):

UPDATE tbl_A
SET tbl_A.Header1 = (SELECT F1 FROM tblStaging
WHERE tblStaging.F1 = 'ISSUER CODE')
WHERE (((tbl_A.TableName)='tblStaging'));

这是B:

SELECT F1
FROM tblStaging
WHERE F1 = 'ISSUER CODE';

UPDATE tbl_A, Q_A_Sel_ISSUERCODE
SET tbl_A.Header1 = [Q_A_Sel_ISSUERCODE].[F1]
WHERE (((tbl_A.TableName)='tblStaging'));

谢谢

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~

克里斯给出了解决方案:

UPDATE tbl_A, tblStaging
SET tbl_A.Header1 = tblStaging.F1
WHERE (((tblStaging.F1)='ISSUER CODE') AND ((tbl_A.TableName)='tblStaging'));

1 个答案:

答案 0 :(得分:2)

我不确定Access,但在SQL Server中你可以像这样使用一个UPDATE语句(而且我认为它也应该在Access中工作):

UPDATE A
SET Header1 = S.F1
FROM tbl_A A, tblStaging S
WHERE S.F1 = 'ISSUER CODE' AND A.TableName ='tblStaging';

虽然这完全是你想要做的,但它与:

相同
UPDATE tbl_A SET Header1 = 'ISSUER CODE'
WHERE TableName = 'tblStaging';