【问题标题】:MS Acces query not updateableMS Access 查询不可更新
【发布时间】:2018-05-28 16:54:03
【问题描述】:

我有Users 的表格,其中包含培训预算,ID=Primary Key

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=Primary Key;

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

但看不到错误或解决方案。

【问题讨论】:

    标签: ms-access


    【解决方案1】:

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

    JOIN 中的字段索引不正确:JOINed 字段上没有主键或唯一索引。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-05
      相关资源
      最近更新 更多