我是否应该基于查询构建表单以查看两个相关实体的属性?
Should I build my form based on a query in order to see attributes of two related entities?
我正在 Microsoft Access 2016 中构建数据库,我有两个关系 (tables):人员 table 和每日 Activity table。 DailyActivitytable通过一对多的关系引用Personneltable(Employee Number在DailyActivitytable中是外来的)。
我正在构建一个表单供用户输入他们的日常 activity,我希望用户能够选择他们的名字或呼号,而不仅仅是一些通过自动编号建立的随机生成的主键(我知道,最终,用户将拥有自己的个人资料,这些资料会在 DBMS 中自动识别他们。
如果我仅基于 Daily Activity table 构建一个表单,员工人数 table 的查找字段是一些随机生成的数字,可能不是很清楚对每位员工识别自己的身份很有用。因此,我是否应该基于两个 table 构建一个查询并使用该查询作为表单的基础,使用 Daily Activity table 中的所有字段并说,名字,姓氏(我实际上有一个关于姓名连接的串联问题,如果可能的话我可能也会使用它)、呼号,当然还有员工编号字段?
正如您所发现的,即使是数据库设计者也不想直接处理主键。解决方案是使用查找。查找是指您显示可理解的标签而不是基础数字。虽然访问允许您使用 table 设计模式向 table、
中的列添加查找
,经验告诉我不要管 table。访问友好的方法是在表单和报告中使用组合框。当我使用表单向导启动时,我通常会删除 DailyActivityID 文本框:
或者在使用表单向导时甚至不包含它:
在幕后,DailyID 仍然在链接您的 table,表单用户只是看不到它。
接下来,我们通过将绑定的文本框替换为组合框来查找员工编号。只需右键单击 EmployeeNumber 文本框即可查看更改为组合框的选项。在这种情况下,一旦您拥有组合框,请确保绑定列为 1,然后将列数设置为 2,将列宽设置为 0 和 1,如下所示:
然后更改行源 属性,使 EmployeeNumber 是不可见的 0 宽度列:
您也可以使用计算列来显示员工的全名:
现在表单显示的名称更加用户友好。要循环浏览记录,请使用表单底部的记录选择器。
接下来我通常会删除记录选择器并将它们替换为 header 中的另一个组合框。
http://vbahowto.com/how-to-make-a-ms-access-filter-form-with-combobox-using-vba/
我正在 Microsoft Access 2016 中构建数据库,我有两个关系 (tables):人员 table 和每日 Activity table。 DailyActivitytable通过一对多的关系引用Personneltable(Employee Number在DailyActivitytable中是外来的)。
我正在构建一个表单供用户输入他们的日常 activity,我希望用户能够选择他们的名字或呼号,而不仅仅是一些通过自动编号建立的随机生成的主键(我知道,最终,用户将拥有自己的个人资料,这些资料会在 DBMS 中自动识别他们。
如果我仅基于 Daily Activity table 构建一个表单,员工人数 table 的查找字段是一些随机生成的数字,可能不是很清楚对每位员工识别自己的身份很有用。因此,我是否应该基于两个 table 构建一个查询并使用该查询作为表单的基础,使用 Daily Activity table 中的所有字段并说,名字,姓氏(我实际上有一个关于姓名连接的串联问题,如果可能的话我可能也会使用它)、呼号,当然还有员工编号字段?
正如您所发现的,即使是数据库设计者也不想直接处理主键。解决方案是使用查找。查找是指您显示可理解的标签而不是基础数字。虽然访问允许您使用 table 设计模式向 table、
中的列添加查找,经验告诉我不要管 table。访问友好的方法是在表单和报告中使用组合框。当我使用表单向导启动时,我通常会删除 DailyActivityID 文本框:
或者在使用表单向导时甚至不包含它:
在幕后,DailyID 仍然在链接您的 table,表单用户只是看不到它。
接下来,我们通过将绑定的文本框替换为组合框来查找员工编号。只需右键单击 EmployeeNumber 文本框即可查看更改为组合框的选项。在这种情况下,一旦您拥有组合框,请确保绑定列为 1,然后将列数设置为 2,将列宽设置为 0 和 1,如下所示:
然后更改行源 属性,使 EmployeeNumber 是不可见的 0 宽度列:
您也可以使用计算列来显示员工的全名:
现在表单显示的名称更加用户友好。要循环浏览记录,请使用表单底部的记录选择器。
接下来我通常会删除记录选择器并将它们替换为 header 中的另一个组合框。
http://vbahowto.com/how-to-make-a-ms-access-filter-form-with-combobox-using-vba/