访问 - 表单中的多个记录

时间:2014-04-23 12:23:05

标签: sql ms-access

我将创建一个虚构的例子来解释我想要实现的目标。

假设我将这些表格作为字段:

  • 报告
    • idReport
    • 日期
  • FieldsList
    • idField
    • 名称字段
  • FieldsValues
    • idReport
    • idField

所以,这样的工作原理如下: 一份报告有很多领域。每个字段都有一个值。 以下是一些示例数据:

报告

idReport | date
1 | 04/04/14
2 | 10/06/14

FieldsList

idField | nameField
1 | serialNumber
2 | manufacturer
3 | model

FieldsValues

idReport | idField | value
1 | 1 | FSI83618A
1 | 2 | Apple
1 | 3 | A1457

我想要做的是一个用户选择报告的表单,我将以这种方式显示该报告的FieldValues表中的每一行:

FieldsList.nameFiled:FieldsValues.value

这是清楚的吗?

我找到了一种使用数据表形式或连续形式的方法,但这不是我真正想要的。 我希望能够“设计”屏幕,将我想要的每个领域,我想要的方式。 如果我使用数据表,它只是制作一张桌子,我无法改变它。

有人有任何想法吗?

谢谢!

3 个答案:

答案 0 :(得分:0)

嗯,恕我直言,你可以用两种不同的方式解决这个问题,这只是一个“品味”的问题,更适合你的GUI

  1. 带子表单的表格
    表单包含报表和子表单包含值/字段名称(您必须在查询中组合2个表),根据主表单中的键生成子表单

  2. 制作一个未绑定的表单,放置2个列表框
    左侧的列表框显示报告,右侧的列表框显示每个报告的值/字段名称(与上面相同的查询)。选择报告时,您将触发“更新后”事件以过滤右侧的列表框 这个解决方案需要一些编码

答案 1 :(得分:0)

连续表单是正确的解决方案:您可以选择要放置字段标题的位置以及字段值的放置位置。

当然,如果您希望在不同位置 ,那么如果您希望这些位置依赖于数据,那么I& #39;恐怕你选择了错误的桌子设计。访问不是为此而设计的。如果您需要,Access希望表格的布局如下:

  • 报告
    • idReport
    • 日期
    • SERIALNUMBER
    • 制造商
    • 模型

如果您有一个无法更改的现有旧数据结构,则可以创建查询,将您的数据转换为该格式。但是,请注意,如果您基于此类查询,则无法在表单中更改数据,如果您只想展示它,那就没问题了。 ;如果你想编辑它,请解决你的问题。

如果您需要编辑此类数据,则必须自己完成工作:创建未绑定的表单并在代码中手动执行INSERTs / UPDATEs / DELETE。问题是Access期望字段中的编辑是UPDATE。但是,在您的情况下, edit 可以是INSERT(如果之前没有FieldValues行)或DELETE。因此,内置工具不会带来太多好处。

答案 2 :(得分:0)

我认为我使用了错误的工具来做我想做的事。

由于我只想显示信息,因此我设法使用报告做了我想做的事。

所以我根据咨询创建了一份表格和一份报告(对不起,我不知道英语办公室是怎么称呼的。我用葡萄牙语办公室)。

在此表单中,我选择报告编号。当我单击一个按钮时,我“重新查询”嵌入此表单的报表窗口。 在此报告窗口中,我可以自由地使用设计。 列出的字段仍然就像一个列表,但它比数据表布局要好得多。

感谢您的帮助。