我有一个关于数据库中三个表的利用率的具体问题。表1名为Personnel,列出了员工的姓名。
表2和表3是相同的,只是列出了两种不同类型的加班(长加班和短加班),以及加班的小时数、加班的日期和分配给/挑选的字段为空。
这就是我的想法,我只是不知道如何实现它。我想创建一个表单,让人们输入他们的OT选择,然后自动移动到列表中的下一个人。例如,Rich Riphon将首先启动,单击我将发送的链接,然后打开一个表单,显示他的姓名,由第一个表填充,并显示两个下拉菜单,分别由长OT和短OT表填充。他将从每个选项中选择一个(或者不选择,这将是一个选项)并提交它。
表单操作将把他的名字放在他挑选的OT的分配字段中,并在挑选的字段中放入Yes。
当列表中的下一个人打开表单时,它已向下移动到人员列表中的第2号,谢丽尔·彼得森,并向她显示其余的OT选择(不包括那些在已选择列中具有是的选项)。
任何建议或评论或更好的方法来做到这一点将不胜感激。
发布于 2013-11-27 01:03:32
首先,我不认为ms access能够(轻松地)启动基于超链接的进程。您可以通过向cmd提示符传递宏名称来执行某些操作,但需要掌握一些技巧才能使其正常工作。您是否可以创建一个登录表单来获取当前用户?如果您这样做了,您实际上不需要显示人员列表,只需跟踪尚未响应OT请求的人员。基本上,在表单上需要的只是一个可用OT的列表和一个创建分配的按钮。此外,只有一个表用于OT列表,并为加班类型(长/短)添加一列,可能会更容易(也是更好的设计)。
发布于 2013-11-27 04:54:20
如果谢丽尔不是第二个拿到表格的人呢?你的想法被抛到了窗外。
相反,我会保留一个包含所有用户名及其安全级别的表。管理者可以看到一切,个人用户只能看到他们的记录。这将通过使用OT Picks表单后面的查询来完成,并根据当前用户进行筛选或根本不进行筛选。我做过许多这种类型的“用户控制”数据库,它们都运行得很好。
至于实际的OT跟踪,我同意Steve的帖子,因为它应该在一个表中完成这将是被称为“归一化数据”的概念的首选方法。您确实希望存储尽可能少的数据,以减小数据库的大小。例如,您的Login表将包含以下字段:
H119等...(与该人有关的任何相关信息)
您的OT表将如下所示:
然后,您可以在需要编写查询以报告OT小时或其他任何情况时,在这两个表的UserID字段上连接这两个表。
https://stackoverflow.com/questions/20222987
复制相似问题