根据MS Access中的用户过滤子表单

时间:2014-05-29 15:42:35

标签: login filter ms-access-2007 subform

我有一个数据库,我在其中创建了一个登录框。每个用户通过在登录框中输入他/她的凭据来访问该文件。这些凭证存储在一个名为" users"的单独表中。同一个表格还存储了字段" region"对应于每个用户所在的位置。

在数据库中还有另外两个表:"公司"和"子公司"。 "子公司" table包含一个名为" region"的字段,其值与存储在" users"中的值相同。表(见上文)。这些表使用表单/子表单组合填充。 "公司"是父母(主要形式)和"子公司"是孩子(子形式)。

我需要让子表单只显示子表单中的region字段与刚刚通过登录框登录的用户对应的region字段匹配的记录。

我是Access的新手,如果有人可以提供一些指导,那将非常感激。

最佳, 贝尔纳多

1 个答案:

答案 0 :(得分:0)

在“属性”下的子窗体的RecordSource中,您可以编写一个SQL查询,该记录将记录置于登录区域字段中。同样,您也可以使用OnOpen事件在VBA中动态执行此操作:

Forms!Companies!Subsidiaries.Form.RecordSource = "SELECT * FROM Subsidiaries WHERE [REGION] ='" & Forms!Login!Region & "'"

请注意,这不会输出已过滤的表单,只会输出仍可编辑的减少记录集的表单(即其他记录无法查看)。此外,我假设子窗体的表源共享相同的名称-Subsidiaries。最后,必须在后台打开Login表单以使用其指定的Region文本控件。