问题描述
|
我在2010 Access数据库中有两个表。一个用于客户,一个用于发票。我创建了一个表单,在表单的顶部有一个用于新发票的查找字段。
我要尝试的是当您查找客户并选择他们时,他们的信息将自动填充到“发票”字段中的客户信息中(因此您无需重新输入)。保存后,它将不得不复制到发票表。
我假设这需要一对多关系?看来这是一个非常基本的步骤,但是如果很难找到答案,将不胜感激:)
解决方法
您将要像这样设置表格:
顾客
ID
客户名称
其他领域...
发票
ID
CustomerID(这是“客户”表的外键)
其他领域...
然后,在您的表单上,您将要(主要)将Invoices表用于Recordsource表单:
添加一个组合框,并将其ControlSource设置为Invoices表中的CustomerID字段。
将控件的RowSourceType设置为Table / Query。
将行来源设置为“ 0”
设置BoundColumn = 1
设置LimitToList =是
设置ColumnCount = 2
设置ColumnWidths = 0; 1(第二个数字比开头的0重要性小;开头的0表示可以隐藏ID列)
然后,用户将从组合框中选择客户与发票相关联(下拉)。没有要复制的字段。当您需要发票的客户信息时,只需将客户表与发票表连接起来,如下所示:
SELECT Customers.*,Invoices.*
FROM Invoices INNER JOIN Customers ON Invoices.CustomerID = Customers.ID
请注意,在示例中,为简单起见,我使用了星号。最好明确指定要在SELECT查询中使用的列。