MS Acces查询不可更新

时间:2018-05-28 16:54:04

标签: ms-access

我有Users的表,其中包含培训预算,ID =主键

ID | UserID | FName | SName | Dept | Budget
 1 |   1    | John  | Smith |  CS  |  1000
 2 |   2    | Ian   | Caine |  CS  |  2500
 3 |   3    | Jane  | Kelly |  ED  |  1000
 4 |   1    | John  | Smith |  EQ  |  1000
 5 |   2    | Ian   | Caine |  EQ  |  2500
 6 |   3    | Jane  | Kelly |  CS  |  1000       

然后我有另一张表Courses来存储他们所采用的课程,ID =主键;

ID | UserID | Course | Date    | Dept |Cost  
1  |   1    |  CS01  | 1/4/18  | CS   | 100
2  |   2    |  CS01  | 1/4/18  | CS   | 100
3  |   1    |  CS02  | 10/4/18 | CS   | 75
4  |   2    |  CS02  | 10/4/18 | CS   | 75
5  |   1    |  CS01  | 1/4/18  | EQ   | 100

我正在使用此查询将两者合并,以便我可以为每个用户添加课程并查看其剩余预算;

SELECT u.UserID, c.Date, c.Cost, 
       u.Budget -
       DSum("sub.Cost", "tbl_Courses", "ID <= " & c.ID & 
                                       " AND UserID = " & c.UserID &  
                                       " AND Dept = '" & c.Dept & "'") AS [Budget Remaining]
FROM tbl_Users u
INNER JOIN tbl_Courses AS c
   ON u.UserID = c.UserID AND u.Dept = c.Dept

您可以下载数据库Here

但是,生成的查询不可更新,我已经检查了为什么无法从链接更新查询的常见原因;

http://allenbrowne.com/ser-61.html

但未能看到错误或解决方案。

1 个答案:

答案 0 :(得分:0)

原因在您提供的链接中正确说明:

  

JOIN中的字段未正确编制索引:JOINed字段中没有主键或唯一索引。

当连接多个列时,这个原因通常是有效的,因为如果字段是唯一索引,则可能不需要连接两个字段。在您的情况下, UserID 在表 Courses 中没有唯一索引,并且 Dept 在两个表中都没有唯一索引。

如果没有更多信息,我无法建议您如何使此查询更新,但很可能这是不可能的。