【问题标题】:Integrate junction and lookup tables with a basic Access database将联结表和查找表与基本 Access 数据库集成
【发布时间】:2013-05-07 20:51:46
【问题描述】:

我有一个简单的数据库来存储客户的姓名、城市和州。我已经添加到这两个新表中。一个是查找表,用于描述汽车模型,第二个是连接表,用于设置一个或多个带有客户记录的汽车模型。

这是目前的关系布局:

以及每个表的数据表。 cust_idmodel_id 是自动递增列。

人口统计

lookup_model

junction_model

使用脚本语言、MySQL 和 HTML,我可以在几分钟内完成一个完整的表单。我很难弄清楚在 Access 2007 中是如何完成的。

我需要的两个功能是

  1. 能够编辑/添加项目到查找表
  2. 能够添加新的客户记录,包括从查找表中找到的汽车中进行选择,同时保持主键关系。

例如:

“玛丽·简”拥有一辆福特 Pinto 和 Datson 510。当我添加她的信息时 对于要创建的表单,她的 cust_id 将是 5,两个新的 条目将显示在联结表中,她的 cust_id: 2 (福特) 和 5 (datsun)。

在 Access 2007 中设置此表单是否有相对轻松的方法?

编辑:这是我迄今为止设法完成的工作。此子表单列出了正确的模型/客户关联,但我希望显示一个仅显示 model_desc(而不是模型 ID)的组合框。

【问题讨论】:

    标签: forms ms-access-2007 lookup-tables junction-table


    【解决方案1】:

    在这种情况下,包含“子表单”的表单会很好地为您服务。

    • 您可以创建一个名为“所有者”的表单,该表单绑定到 [人口统计] 表,您可以在其中添加/编辑所有者信息(姓名、地址等)。

    • 您可以创建一个名为“Cars_Owned_subform”的“连续表单”表单,该表单绑定到 [junction_model] 表。该表单将包含一个组合框,其行源是 [lookup_model] 表,显示 [model_desc] 并返回 [model_id]。

    • 然后您可以使用子表单向导将子表单控件添加到“所有者”表中,它将帮助您根据 [cust_id] 将子表单链接到其父级。然后,当您从一个所有者移动到下一个所有者时,他们的汽车将在子窗体中自动更新,如果您在子窗体中添加一辆新车,它将自动与当前正在显示其记录的所有者的 [cust_id] 相关联。

    至于编辑查找表,您可以很容易地创建一个简单的表单来编辑 [lookup_model] 表。

    编辑回复:问题更新

    要有一个组合框显示 [model_desc] 并返回 [model_id],您需要让组合框“显示”两列,其中第一列的宽度为零。也就是说,组合框的 Format 属性应该包含类似...

    列数:2
    列宽:0";1.3646"

    ...并且 Data 属性应包括...

    行来源:lookup_model
    绑定列:1

    最终结果如下所示:

    设计视图中的子窗体将是:

    【讨论】:

    • 我认为组合框现在可以工作了。但它只显示一个选定的项目。我必须使用数据表视图来显示来自 junction_models 的所有内容,但在这里我只看到 ID。有没有更好的方法以人类可读的形式显示已选择的数据?
    • @acoder RE:显示多个项目 - 在 [cars_owned_subform] 属性表的格式选项卡上,确保默认视图设置为“连续表单”。 (附:我在答案中添加了一些屏幕截图。)
    • 1) 我可以禁止相同值的倍数吗? 2) 我可以让用户删除现有的客户-汽车关联吗?
    • 由于您的回答成功解决了这个问题,我已经创建了另一个处理上面的#2:stackoverflow.com/questions/16531496/…
    • @acoder RE:我可以禁止相同值的倍数吗? - 您在 [junction_model] 上的主键是 ([cust_id], [model_id]),因此每个人只能“拥有”同一个模型一次。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多