0

我在 2010 Access 数据库中有两个表。一份用于客户,一份用于发票。我为新发票创建了一个顶部带有查找字段的表单。

我要做的是,当您查找客户并选择他们时,他们的信息将自动填充到发票字段上的客户信息中(因此您不必重新输入)。然后,当您保存时,它必须复制到发票表中。

我假设这需要一对多的关系?这似乎是一个非常基本的步骤,但很难找到答案,任何帮助将不胜感激:)

4

1 回答 1

1

您需要像这样设置您的表:

顾客

  • ID
  • 客户名称
  • 其他领域...

发票

  • ID
  • CustomerID(这是客户表的外键)
  • 其他领域...

然后在您的表单上,您将希望将 Invoices 表(主要)用于表单 Recordsource:

  1. 添加一个组合框并将其 ControlSource 设置为Invoices表中的 CustomerID 字段。
  2. 将控件的 RowSourceType 设置为 Table/Query。
  3. 将行源设置为SELECT ID, CustName FROM Customers ORDER BY CustName
  4. 设置 BoundColumn = 1
  5. 设置 LimitToList = 是
  6. 设置 ColumnCount = 2
  7. 设置 ColumnWidths = 0; 1(第二个数字不如最初的 0 重要;最初的 0 告诉访问隐藏 ID 列)

然后,用户将从组合框(下拉)中选择要与发票关联的客户。没有要复制的字段。当您想要发票的客户信息时,您只需将客户表与发票表连接起来,如下所示:

SELECT Customers.*, Invoices.* 
FROM Invoices INNER JOIN Customers ON Invoices.CustomerID = Customers.ID

请注意,为了简单起见,我在示例中使用了星号。明确指定要在 SELECT 查询中使用的列是一种很好的做法。

于 2011-04-14T18:48:55.350 回答