2011-07-05 54 views
1

我试图让符合一定条件的访问条件只秀行,让我给你一些背景资料之前,我继续:访问表单域逻辑

我创建了一个访问的形式,并将其链接到我机器上的测试数据库。特殊的表我很感兴趣,包含以下(重要)行:

ID,办公室,名称,保险号

的事情是,ID不是唯一的。有两个办公室位置,每个办公室都有自己的一组唯一的ID号码。这意味着身份证10在这里和那里可能是也可能不是同一个人。 (这些数据来自传统安全系统,我们不打算改变它,所以我不能改变它)

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

SO!我用TABS创建了一个Access窗体!两个标签,每个办公室一个。我现在试图实现的是:

为每个选项卡填入ID /名称/安全编号字段,只填写与特定“Office”值匹配的行。

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

回答

0

如果您希望在单独的标签页控件中显示办公地点的数据,则可以在页面上使用子表单,这些子表单仅在作为其记录源的查询的WHERE子句中有所不同。所以对于OFFICE1子窗体,查询可能是:

SELECT ID, Office, [Name], SecurityNumber 
FROM YourTable 
WHERE Office = 'Office1' 
ORDER BY [Name]; 

那么对于Office2,查询将是除了WHERE子句相同:

WHERE Office = 'Office2' 

当我明白你的问题,这种做法将做你要求的。

但是,这并不是真正简单的“访问方式”来做到这一点。请考虑一个组合框控件,以允许用户选择他们想要查看的办公室。在组合更新事件后的代码中,修改用作表单记录源的SELECT语句或创建一个应用它的过滤器表达式。

此外,由于您是从SQL Server中提取表单的数据,因此请考虑是否希望表单为所选办公室位置加载每条记录。如果您对每个位置只有少量的中等数量的行,则可能不会太担心,但是如果您要处理的行数可能多达数千行,一般来说,你应该尽量避免通过线路拉取大量的数据;谨慎地拉动,而不是仅仅为了眼前的任务而需要的东西。

+0

嗨汉斯!我试图用宏来实现这一点。我从你说的我应该看到构建SQL查询并将其用作数据源? – CodeMinion

+0

我明白你的意思,但由于某种原因,我的Office2表单字段全部变成了#Deleted :(这是怎么回事 – CodeMinion

+0

我正在使用'= [dbo_Employee]![FirstName]'来为其中一个字段选择控制源 – CodeMinion