访问:如何构建输入与只读表单

时间:2015-09-21 08:01:13

标签: mysql ms-access

我有一个人民DB,经过一些开发后,我的主表单记录集因子查询等而无法更新。

所有这一切都是因为我重新设计了数据库以更像现实生活,这意味着我添加了一些可以跟踪某些事情的表格。这使得关系变得更复杂,现在我留下了一个数据库我不能添加新的记录或编辑哈哈哈,这很无用

所以我认为它不仅仅是我,所以有一个简单的解决方案,我看不到或我设计我的表格完全错误。

当您拥有/获取基于记录集的表单时,设计/结构中的实践是什么?该记录集在“常规”人员数据库中无法更新,并且您想在其中添加或编辑详细信息?(认为HR管理DB)

relationships

(记录集不可更新的原因:记录集基于从3个相关表中获取记录的查询,并在日期字段上执行MAX函数以获取其中两个表的最新记录)

现在我有一个mainform和三个子表单。我可以在子窗体中编辑/添加信息,但显示名称和其他个人详细信息的mainForm不可更新......

mainForms Query正在查询tblPerson,tblInmate,tblClassificationHistory和tblSquadHistory ......

1 个答案:

答案 0 :(得分:2)

在你的情况下,我会建议两种可能性:

  1. 构建一个额外的表单,用于输入和编辑唯一记录源为tblPerson的人员的数据。您可以通过按钮或功能区在主窗体中打开此输入/编辑表单。您可以构建一个表单来输入和编辑数据,并通过VBA-Code(甚至是宏?)来改变行为。或者您可以单独构建两个表单来编辑和输入数据。您还可以添加“确定”和“取消”按钮以保护或撤消更改。可能性是无止境。这是ACCESS的基础知识,有大量的教程,所以我不会进一步解释。
  2. 更改主表单上的查询。如果您有连续表单而又不想添加新表单,则应编辑查询。我无法使用给定的信息估计您描述的查询复杂性,但必须有一种方法可以获得“MAX-date”-recordsset而无需聚合(“Group By”-Statement)查询结果。您的目标是更改主表单查询,它没有任何“分组依据”部分。请注意,您可以使用subquerys执行“分组依据”以查找“最大值”。如果确实需要主窗体的所有查询字段,还应检查主窗体查询。让您的三个子表单执行数据查询工作。
  3. 基本上,完美的用户界面(UI)作为ACCESS中的表单取决于用户的偏好,期望和用例本身。所以你必须找出哪种设计最适合你的应用。如果您想从最近的经验中获取知识,您可以对UI设计模式进行一些研究。这是一个巨大的专业领域!