需要帮助在多个表中构建 Access 查询

问题描述 投票:0回答:1

我正在为我们的计算机系统的用户建立一个数据库。每个系统都有多个具有不同帐户访问级别的用户。我希望能够构建一个查询,要求执行查询的人输入识别信息。例如我有下表

PC1 的桌子

用户名 姓氏 名字 访问级别
用户1 史密斯 约翰 用户
用户2 琼斯 保罗 用户
用户3 亚当斯 迈克尔 用户
用户4 爱德华兹 詹姆斯 管理员

PC2 桌

用户名 姓氏 名字 访问级别
用户1 史密斯 约翰 用户
用户2 爱德华兹 詹姆斯 管理员
用户3 爱德华兹 詹姆斯 用户
用户4 琼斯 保罗 用户
用户5 里德 乔治 用户
用户6 马克尔 四月 经理
用户7 棕色 史蒂芬 用户

PC3 桌

用户名 姓氏 名字 访问级别
用户1 史密斯 约翰 用户
用户2 亚当斯 迈克尔 用户
用户3 棕色 史蒂芬 用户
用户4 马克尔 四月 经理
用户5 爱德华兹 詹姆斯 管理员

所以我希望能够查询

姓:爱德华兹

名字:詹姆斯

让查询给出这两个值满足的所有行,并在结果前面添加 PC 的名称。像这样。

电脑 用户名 姓氏 名字 访问级别
PC1 用户4 爱德华兹 詹姆斯 管理员
PC2 用户2 爱德华兹 詹姆斯 管理员
PC2 用户3 爱德华兹 詹姆斯 用户
PC3 用户5 爱德华兹 詹姆斯 管理员

如果必须使用查询、报告或 VBA 来完成此操作。这些选项中的任何一个都是可以接受的。我想我可能必须使用宏来完成此操作,但如果可以使用 Access 的内置函数,我认为会更容易。我只是对 Access 不够熟悉,不知道从哪里开始。我尝试过查询向导,但它只查找单个表中的重复项。我还认为我可以将所有表填充到隐藏表中,然后让查询对组合表执行重复搜索。任何有关此事的见解将不胜感激。

ms-access
1个回答
0
投票

我会用四个表格来表示:

用户

  • ID (PK) - 自动编号
  • 姓氏
  • 名字
    enter image description here

系统

  • ID (PK) - 自动编号
  • 系统
    enter image description here

访问级别

  • ID (PK) - 自动编号
  • 访问级别
    enter image description here

系统访问信息

  • 系统ID (PK) - 数字
  • AccessID (PK) - 数字
  • 用户 ID (PK) - 数字
  • 用户名
    enter image description here

然后我有一个查询将其组合在一起:

SELECT  Users.ID AS UserID,
        System,
        UserName,
        LastName,
        FirstName,
        AccessLevel
FROM    ((SystemAccessInfo INNER JOIN Systems ON SystemAccessInfo.SystemID = Systems.ID)
                           INNER JOIN Users ON SystemAccessInfo.UserID = Users.ID)
                           INNER JOIN AccessLevels ON SystemAccessInfo.AccessID = AccessLevels.ID  

创建一个连续表单来保存 UserDetail 和查询的记录源。 enter image description here

创建另一个单一表单,仅保存名字和姓氏,并将记录源添加到 Users 表中,并将 UserDetail 作为子表单拖入其中。
将主/子字段 - ID 链接到 UserID 即可开始:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.