0

我正在尝试将用于员工培训记录的 Excel 电子表格转换为 Access 2003 数据库。我已将数据库设置为 4 个表:Staff、Tasks、Trainers 和 TrainingRecords。培训记录表包含以下字段:RecordID(自动编号和 PK)、StaffID(链接到员工)、TaskID(链接到任务)、DateCompleted 和 TrainerID(链接到培训师)。我已经创建了用于将数据输入到员工、任务和培训师表中的所有相关表格。我还创建了一个表单,允许您通过从组合框中选择员工姓名、任务名称和培训师姓名来输入新的培训记录。

我的问题是,我的老板希望培训记录的数据输入看起来更像 Excel 电子表格,它显示所有可用任务的完整列表,然后用户可以填写完成日期和所有相关的培训师姓名一次完成项目,通常会留下多个任务而没有创建日期和培训师(因为工作人员尚未接受过该特定任务的培训)。我不太确定如何着手解决这个问题 - 我有以下想法,但不知道它们的可行性:

1)当表单加载时,为任务名称中的所有可用任务和标签添加复选框。然后,用户将单击他们想要添加的任何任务,并为他们勾选的所有任务指定相同的日期和培训师姓名。

2)使用office excel电子表格控件(10或11)允许数据输入,然后编写一些代码来交互信息并根据需要创建/修改TrainingRecords表。这个选项对我来说应该是相当直接的,因为我已经完成了很多 Excel VBA 编程。但是,我不知道如何访问电子表格中的 Range/Cells 对象以读取/写入数据。我猜这个控件并不是真的要以这种方式使用。

3)创建一个临时表(将通过子表单查看),这将填充所有任务的列表,并且当用户从下拉框中选择员工姓名时,员工是否接受过相关培训主要形式。如果用户从下拉框中选择不同的员工,表单将刷新并显示该员工的数据。

我对任何其他比我在这里的想法更直接的想法/建议持开放态度。

4

1 回答 1

1

Access 中的表单可以配置为数据表视图表单,看起来类似于 Excel。但是,我认为使用数据表表单并不能解决您在这里遇到的所有问题。

你可能最好做一些你在#1中建议的事情。填充复选框的部分需要取消绑定,您必须编写代码填充复选框并根据复选框的选中方式插入/更新/删除记录。您不能在数据表表单或连续表单中使用未绑定字段。

选项#3 也可以。或者,您也可以将表单绑定到伪造的 ADO 记录集。再一次,您必须编写代码来填充 ADO 记录集,并且您必须编写更多代码来将 ADO 记录集中的所有添加/编辑/删除推送回您的数据源。

我会远离选项#2。我想不出在 MS Access 应用程序中使用或嵌入 Excel 的很多原因(Excel 的图表可能是唯一的原因之一)。

我想警告你的另一件事是让你的老板决定事情的外观和感觉。当然,老板会有发言权,但理想情况下,他的意见应该是说某些东西太笨拙、太不直观、需要太多点击、需要太多培训才能使用等等。我允许用户规定应用程序的外观和行为的细节,最终结果并不好。在其他情况下,我选择了实现某个功能的最佳方式并根据我自己的知识为其设计了用户界面,结果比我允许最终用户指定他们想要的控件的情况要好得多,他们去哪里,他们持有什么数据,他们的行为方式等等。经验丰富的应用程序开发人员应该对最终用户的设计环境有一定的了解,并允许您为他们提供满足或超出他们期望的东西。当然,不要关闭来自你的老板或最终用户的反馈,但要尝试找出他们想要的东西与他们所拥有的不同的原因。最好不要让用户的旧习惯和习惯决定用户界面的外观。你永远不可能那样取得进步。今天的应用程序应该有现代的、用户友好的用户界面,如果你构建你的应用程序来适应那些思想停留在 90 年代或仅仅停留在其他低级范式的人,你就无法做到这一点。不要关闭来自老板或最终用户的反馈,但要尝试找出他们想要的东西与他们所拥有的不同的原因。最好不要让用户的旧习惯和习惯决定用户界面的外观。你永远不可能那样取得进步。今天的应用程序应该有现代的、用户友好的用户界面,如果你构建你的应用程序来适应那些思想停留在 90 年代或仅仅停留在其他低级范式的人,你就无法做到这一点。不要关闭来自老板或最终用户的反馈,但要尝试找出他们想要的东西与他们所拥有的不同的原因。最好不要让用户的旧习惯和习惯决定用户界面的外观。你永远不可能那样取得进步。今天的应用程序应该有现代的、用户友好的用户界面,如果你构建你的应用程序来适应那些思想停留在 90 年代或仅仅停留在其他低级范式的人,你就无法做到这一点。

于 2012-10-18T16:44:31.173 回答