0

請求書を保存するテーブルと、そのテーブルに基づいた請求書のようなフォームがあり、以前の請求書を検索できます。現在、Excelで請求書を作成してから、データを新しいレコードとして請求書テーブルにエクスポートしています。請求書フォームから請求書を作成する方法があるかどうか疑問に思いました。請求書に使用されるすべての製品と価格の表があります。請求書フォームに検索ボタンを配置して、製品テーブルのレコードまたは「製品」を検索し、それを新しい請求書のフィールドに挿入する方法はありますか?製品テーブルに接続して請求書フォームのフィールドに挿入するためのコードをいくつか調べましたが、どのように検索すればよいですか?何か考えやアイデアはありますか?どんな助けでも大歓迎です!!

4

2 に答える 2

3

Handling this through VBA and control events is typically the best choice:

  1. Use an unbound text box in your form as your search input field. This will allow the user to input some text into a box and hit enter, or click some related "GO" button if you choose to perform some sort of search.
  2. Set the `OnChange` property of this text box control to the name of the macro or method you designed to handle this event (or click event property if you've instead set up a button to a) check the textbox value; and b) handle it; typically allowing for both the user pressing enter or clicking the button to perform this action). You may also simply call an `inputbox` from some button click event to pop up a prompt to allow the user to enter the product value to search for.
  3. Within your handling script, use DLookup() to use that user-supplied value against your products table to get some meaningful product value back which you can then place anywhere on your form.

Also, although I'm not familiar with your particular setup, it seems as though you should ditch your excel file and go with a direct user interfacing MS Access input form. You may find it always easier to deal with user input directly rather than indirectly through oustide files. That way, you have better control over user input validation and user feedback vs fearing whatever the Excel client feels like putting in those spreadsheets.

于 2010-10-21T08:52:07.043 に答える
0

これが正しいデザインかどうかはわかりません。一度に 1 つの製品のみ請求しますか?

また、主キーの観点から考えているようには聞こえません。

また、「相対的に」考えているようにも聞こえません。

明確にさせてください。ほとんどの請求システムでは、通常、Invoices テーブル、次に InvoiceItems テーブルがあります。請求書項目と請求書の間の関係は、1 つの請求書から (可能性はあるが必ずしもそうではない) 多数の項目になります。

次に、 Products テーブルがあります。Products と InvoiceItems の関係は、1 つの製品と複数の InvoiceItems です。つまり、特定の製品をさまざまな顧客に販売できます。

したがって、次のようになります。

Invoices -->  InvoiceItems
Products -->  InvoiceItems

これをフォームに実装する必要があります。

テーブルとその関係を照合して、InvoiceForm を作成し、InvoiceItemsSubForm を作成します。多くの項目を保持する InvoiceItemsSubForm は、連続したフォームです。

InvoiceItemsSubForm には、製品の主キーを取得するフィールドがあります (日付、購入した製品の数などの他のフィールドと共に)。

製品を検索するには、ProductId フィールドと ProductName フィールドを持つコンボ ボックスを使用できます。このコンボ ボックスには 2 つの目的があります。製品を検索できるようにすることと、InvoiceItem レコードに必要な製品を入力できるようにすることです。

あなたの質問を誤解している場合は、お詫び申し上げます。私があなたの質問を誤解していなければ、学ぶべきことがたくさんあります...

于 2010-10-15T14:54:34.563 に答える