在多个表中创建添加记录的表单

12

我刚接触Access(我只有2003版本),让我感到非常困惑。考虑到我对数据库一般很新手,所以现在我非常困惑......请帮帮我。

我正在尝试设计一个目录我所有书籍的数据库。我已经创建了表并设置了关系我的数据库图像;我有几个与“Books”表相关的Many-to-Many关系的表(例如:作者:每本书可以有多位作者,每位作者可以“拥有”多本书),还有几个简单的One-To-Many关系的表(例如:书籍类型:一本书只能属于一种类型,但可以有多本属于同一种类型的书)。

现在我希望创建一个单一的表单(如有需要,含子表单)来填充我的表格。我希望能够添加新书,并从现有作者中选择(或添加新的作者),同样适用于One-to-Many关系中的数据。

我应该如何实现这个呢?

我真的不知所措,我需要多个表单并将它们添加为主表单的子表单吗?还是需要查询之类的操作?

1个回答

20
上述设计需要四个子表单。每个子表单都应该基于联接表,以书籍ID作为链接子字段和主字段,并且使用基于相关表格的组合框来显示第二个表格ID。
例如,您的第一个子表单是作者,它所基于的表格是Libri_Autori。
Link Master Field: Id
Link Child Field: SchedaLibro

组合框:

Control Source: SchedaAutore
Row Source : SELECT Id, Nome FROM Autori
Bound Column: 1
Column Count : 2
Column Widths : 0, 2

创建您的书籍表单,然后开始添加子表单,向导会为您完成大部分工作。
要向作者表中添加记录,您需要将Limit To List设置为Yes,并在Not In List事件上运行代码。我喜欢使用一个小的弹出窗口来添加项目到“背景”表格中。这可能在Access 2010中更容易,因为您可以设置ListItemsEditForm

1、在添加子表格之前,请先创建主表格。请注意选择“使用控件向导”选项。这是默认设置,因此除非您取消选择它,否则应该可以正常使用。

Step 1 Using a wizard

添加子表单的各个向导步骤 添加子表单的向导步骤 选择子表单字段

Selecting the subform fields

选择链接子项和主字段

Selecting the link child and master fields

表单显示子表单控件突出显示的黄色和控件属性。

Subfrom control

2、添加组合框

您可以通过右键单击并自己设置属性,将子窗体向导添加的字段更改为组合框...

Right-click for change to combo

...或者您可以删除现有的控件,然后使用向导添加组合框。第一步是选择组合框类型。

Step 1 combo type

第二步是选择表格或查询。

Step 2 choose table or query

第三步是选择字段。

Step 3 choose fields

第四步选择排序方式,此处不显示,这是第五步,即设置列宽。

Step 4 skipped, step 5 set column widths

第六步是设置控件源。

Step 6 set Control Source

你最终将得到一个带有所示属性的下拉框。

Subform combo and properties

最终形式

Final form


谢谢!实际上,对我来说并不是很清楚,正如我所说,我是个新手,但我会按照您的建议努力,并回来提出更多问题。 - rodedo
请查看Northwind示例数据库(http://support.microsoft.com/kb/824265),以了解这些想法如何运作。订单表单展示了一些想法如何协同工作。然而,仅将Northwind用作非常粗略的指南,特别是其中的代码并不是最佳选择。 - Fionnuala
嗯...有没有一些逐步教程在线上?我相信我仍然缺少一些基本步骤;如何基于Libri_Autori创建子表单,使用向导?如何定义“链接主/子字段”?在哪里定义组合框?到目前为止,我已经在表格设计视图中的LookUp选项卡中为表格Libri_Autori和字段SchedaAutore添加了它,这是你所说的吗? - rodedo
绝对不行!除非你在Sharepoint上使用数据库,否则不要将查找放入表格中。 - Fionnuala
感谢您的努力和时间! - rodedo
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接