我正在为我们的计算机系统的用户建立一个数据库。每个系统都有多个具有不同帐户访问级别的用户。我希望能够构建一个查询,要求执行查询的人输入识别信息。例如我有下表
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 不够熟悉,不知道从哪里开始。我尝试过查询向导,但它只查找单个表中的重复项。我还认为我可以将所有表填充到隐藏表中,然后让查询对组合表执行重复搜索。任何有关此事的见解将不胜感激。
我会用四个表格来表示:
用户
系统
访问级别
系统访问信息
然后我有一个查询将其组合在一起:
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 和查询的记录源。
创建另一个单一表单,仅保存名字和姓氏,并将记录源添加到 Users 表中,并将 UserDetail 作为子表单拖入其中。
将主/子字段 - ID 链接到 UserID 即可开始: