我试图有条件地进行访问只显示符合某种条件的行,允许我在继续之前给你一些背景信息:
我已经创建了一个Access表单并将其链接到我的计算机上的测试数据库。我感兴趣的特定表包含以下(重要)行:
ID,Office,Name,SecurityNumber
问题是,ID不是唯一的。有两个Office位置,每个Office都有自己的一组唯一ID号。这意味着ID 10在这里和那里可能是也可能不是同一个人。 (这些数据来自遗留的安全系统,我们还没有改变,所以我无法改变它)
但ID -is-对每个Office都是唯一的。
SO!我用TABS创建了一个Access表单!两个标签,每个办公室一个。我现在要做的是:
让每个标签的ID / Name / SecurityNumber字段只填充与其特定“Office”值匹配的行。
感谢您阅读并感谢您的帮助! :d
答案 0 :(得分:0)
如果您希望在单独的标签页控件中显示办公室位置的数据,则可以使用页面上的子表单,这些子表单仅在用作其记录源的查询的WHERE子句中有所不同。因此,对于Office1子表单,查询可以是:
SELECT ID, Office, [Name], SecurityNumber
FROM YourTable
WHERE Office = 'Office1'
ORDER BY [Name];
然后对于Office2,除了WHERE子句之外,查询将是相同的:
WHERE Office = 'Office2'
据我了解你的问题,这种方法可以满足你的要求。
然而,实际上并不是那种简单的“访问方式”。而是考虑一个组合框控件,以允许您的用户选择他们想要查看的办公室。在combo更新后事件的代码中,要么修改用作表单记录源的SELECT语句,要么创建一个过滤表达式并应用它。
此外,由于您从SQL Server中提取表单的数据,请考虑您是否希望表单加载所选办公室位置的每条记录。如果每个位置只有几个到中等数量的行,那可能不是很重要,但是如果你要处理多个数千行,那么它可能就是这样。一般情况下,您应该尽量避免在线路上大量数据;谨慎地拉动......只需要你眼前的任务所需要的东西。