2013-11-26 111 views
0

我有一个关于在数据库中使用三个表的具体问题。表1称为人员,并列出了工作人员的姓名。MS Access窗体和表格

表2和表3是相同的,只是列出了两种不同类型的加班(长和短)以及OT的小时数,OT的日期和分配到/拾取的空白字段。

这是想法,我只是不知道如何实现它。我想创建一个表格供人们输入他们的OT选择,然后自动移动到名单上的下一个人。举个例子,Rich Riphon首先会点击我要发送的链接,然后一个表格会打开,显示他的名字,由第一个表格填充,并显示两个下拉菜单,从Long OT和短OT表格。他会从每个(或无,这将是一个选项)中选择一个并提交。

表单操作将他的姓名放在他选择的OT的Assigned字段中,并在Picked字段中放置一个Yes。

当列表中的下一个人打开表单时,它已经下移到人员列表Cheryl Peterson的第2位,并向她展示剩余的OT选择(不包括在Picked列中具有“是”的选择)。

任何建议或意见或更好的方式来做到这一点,将不胜感激。

+0

这是一个Access数据库部署在网络上,通过电子邮件发送链接?哪个版本的Access? – Smandoli

回答

0

首先,我不认为ms访问将能够(容易地)启动基于超链接的过程。您可以通过将宏名称传递给cmd提示符来执行某些操作,但需要掌握一些技巧才能正常运行。你可以创建一个登录表单来获取当前用户吗?如果你这样做,你不需要显示人事清单,只需跟踪谁还没有对OT请求作出响应。基本上在这一点上,你需要在你的表格上列出可用的OT和创建任务的按钮。此外,它可能更容易(和更好的设计),只有一个表的OT清单,并为加班类型(长/短)添加一列。

0

如果Cheryl不是第二个获得表格的人?你的概念走出了窗口。

相反,我会保留所有用户名和其安全级别的表。管理人员可以看到一切,个人用户只能看到他们的记录。这可以通过在OT Picks表单后面使用查询来完成,并且可以由当前用户过滤或根本不过滤。我已经完成了许多这类“用户控制”数据库,它们都运行良好。

至于实际的OT跟踪,我同意Steve的帖子,因为它应该在一张表中完成。这将是被称为“规范化数据”的概念的首选方法。您确实希望存储尽可能少的数据以保持数据库的大小。举个例子,你的登录表将具有以下字段:

  • 用户名
  • 名字
  • SECURITYLEVEL
  • 地址1
  • 地址2
  • 国家
  • 电话
  • 等...(任何相关信息涉及到个人)

你OT表是这样的:

  • 用户名
  • OTDate
  • OTHours
  • OTType
  • 等...(任何其他的有关OT)

然后,只要您需要编写查询来报告OT时间或任何事情,您就可以将这两个表加入两个表中的UserID字段中。