MS Access基于另一个查询的SQL更新查询

时间:2015-09-24 14:18:54

标签: sql ms-access sql-update

我的数据库有现有数据。我正在尝试实施某种安全权利系统。它不需要真正安全......只是限制每个级别可以有效改变的内容。技术上......存在......但需要加强。

我需要调整教师用户的现有权限级别。我有一个查询(qInstructors),它列出了作为教师列出的类表中任何人的DISTINCT查询。总共有38名教师。

现在我需要更新User表来调整那38个人的权利......这就是我被困住的地方。一个简单的更新查询,没问题。但我不能用正确的术语进行搜索,因为我找不到任何东西来帮助我敲定SQL。

UPDATE tblUserList 
INNER JOIN tblUserList ON tblUserList.NTID = qInstructors.Instructor 
SET tblUserList.Rights = 2
WHERE [NTID]=[Instructor];

当我尝试运行它时,我在JOIN中遇到语法错误。这超出了我的SQL知识......任何线索?

3 个答案:

答案 0 :(得分:2)

我建议使用LocalReport

执行此操作
ReportViewer reportViewer = new ReportViewer();
reportViewer.ProcessingMode = ProcessingMode.Local;
reportViewer.LocalReport.ReportPath = "Reports.Test.rdlc";
reportViewer.LocalReport.DataSources.Add(myDataSource);

byte[] bytes = reportViewer.LocalReport.Render("PDF");

IN子句中UPDATE tblUserList SET tblUserList.Rights = 2 WHERE [NTID] IN (SELECT [Instructor] FROM qInstructors); 的使用因数据库而异。 JOIN版本是ANSI标准,应该可以在MS Access和您可能使用的任何后端数据库中使用。

答案 1 :(得分:1)

您在tblUserlist子句中指定了qinstructors而不是join

UPDATE tblUserList 
INNER JOIN qInstructors ON tblUserList.NTID = qInstructors.Instructor 
SET tblUserList.Rights = 2

答案 2 :(得分:0)

在“设计视图”中创建查询。将类型更改为"更新查询"。

将您的目标表添加到查询中,并添加您现有的"给我讲师"查询也是如此。

将目标表中ID的一行拖到查询返回的相应ID中。

将要更新的字段向下拖动到底部的网格。在"更新到"字段,输入"允许"或" True"或其他任何表明教师允许的东西。