0

我有一个存储发票的表格和一个基于该表格的表格,看起来像发票,以便您可以搜索以前的发票。目前我正在用 excel 创建发票,然后将数据作为新记录导出到 Invoice 表中。我想知道是否有一种方法可以从我的发票表单创建发票。我有一张我们携带的用于发票的所有产品和价格的表格。有没有办法在发票表单上放置一个搜索按钮,以便在产品表中搜索记录或“产品”并将其插入新发票的字段中?我已经查看了一些代码来连接到产品表并将其插入发票表单的字段中,但是我该如何搜索呢?有什么想法或想法吗?任何帮助将非常感激!!

4

2 回答 2

3

通过 VBA 和控制事件处理此问题通常是最佳选择:

  1. 在表单中使用未绑定的文本框作为搜索输入字段。这将允许用户在一个框中输入一些文本并按 Enter,或者如果您选择执行某种搜索,则单击一些相关的“GO”按钮。
  2. 将此文本框控件的`OnChange`属性设置为您设计用于处理此事件的宏或方法的名称(或单击事件属性,如果您已将按钮设置为 a)检查文本框值;b) 处理它;通常允许用户按下回车键或单击按钮来执行此操作)。您也可以简单地从某个按钮单击事件中调用“输入框”来弹出提示,允许用户输入要搜索的产品值。
  3. 在您的处理脚本中,使用DLookup()将用户提供的值用于您的产品表,以获取一些有意义的产品值,然后您可以将其放置在表单的任何位置。

此外,虽然我不熟悉您的特定设置,但似乎您应该放弃您的 excel 文件并使用直接用户界面的 MS Access 输入表单。您可能会发现直接处理用户输入总是比通过 oustide 文件间接处理更容易。这样,您可以更好地控制用户输入验证和用户反馈,而不是担心 Excel 客户端在这些电子表格中的感觉。

于 2010-10-21T08:52:07.043 回答
0

不确定这是正确的设计。您一次只对一种产品开具发票吗?

此外,听起来好像您不是在考虑主键。

这听起来也不像是你在“关系”地思考。

让我澄清一下。在大多数开票系统中,通常有一个 Invoices 表,然后是一个 InvoiceItems 表。发票项目和发票之间的关系是一张发票对(可能但不一定)许多项目。

然后你有你的产品表。Products 和 InvoiceItems 之间的关系是一个产品对多个 InvoiceItems。即,您可以将给定的产品销售给许多不同的客户。

所以我们有:

Invoices -->  InvoiceItems
Products -->  InvoiceItems

现在你需要在你的表单中实现它。

匹配您的表及其关系,您创建一个 InvoiceForm 并创建一个 InvoiceItemsSubForm。InvoiceItemsSubForm 用于容纳许多项目,是一个连续的表单。

在 InvoiceItemsSubForm 中,您将拥有一个获取产品主键的字段(以及其他字段,例如日期、购买的产品数量等)。

要搜索您的产品,您可以使用一个包含 ProductId 和 ProductName 字段的组合框。这个组合框有两个用途:它允许您搜索您的产品,它允许您在 InvoiceItem 记录中输入您想要的产品。

如果我误解了你的问题,我深表歉意。如果我没有误解你的问题,你有很多东西要学...

于 2010-10-15T14:54:34.563 回答