访问表单字段逻辑

时间:2011-07-05 05:01:44

标签: sql-server-2008 ms-access macros ms-access-2007

我试图有条件地进行访问只显示符合某种条件的行,允许我在继续之前给你一些背景信息:

我已经创建了一个Access表单并将其链接到我的计算机上的测试数据库。我感兴趣的特定表包含以下(重要)行:

ID,Office,Name,SecurityNumber

问题是,ID不是唯一的。有两个Office位置,每个Office都有自己的一组唯一ID号。这意味着ID 10在这里和那里可能是也可能不是同一个人。 (这些数据来自遗留的安全系统,我们还没有改变,所以我无法改变它)

但ID -is-对每个Office都是唯一的。

SO!我用TABS创建了一个Access表单!两个标签,每个办公室一个。我现在要做的是:

让每个标签的ID / Name / SecurityNumber字段只填充与其特定“Office”值匹配的行。

感谢您阅读并感谢您的帮助! :d

1 个答案:

答案 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中提取表单的数据,请考虑您是否希望表单加载所选办公室位置的每条记录。如果每个位置只有几个到中等数量的行,那可能不是很重要,但是如果你要处理多个数千行,那么它可能就是这样。一般情况下,您应该尽量避免在线路上大量数据;谨慎地拉动......只需要你眼前的任务所需要的东西。