0

Access 2007 を使用してデータベースを構築しています。Access の経験があまりないため、このタスクを実行する方法がわかりません。

エントリ フォームを作成し、Product テーブルから情報を取得するドロップ ダウンである "Product" というフィールドを作成しました。Product テーブルは次のように設定されます。

Product Name        Commodity
--------------------------------------------
Product #1          Soybean
Product #2          Soybean Meal
Product #3          Corn

HTSUS テーブルから情報を取得するドロップダウンである「HTS Commodity」というフォームに別のフィールドがあります。このフィールドはロックされています。誰かが製品フィールドから製品を選択すると、値が自動的に更新されるようにしたいと考えています。HTSUS テーブルは次のとおりです。

Commodity           HTSUS Value
--------------------------------------------
Soybean             1.1.1
Soybean Meal        2.2.2
Corn                3.3.3

「製品」フィールドで項目を選択すると、製品名が表示されます。商品を選択したら、テーブルの商品列に基づいて「HTS 商品」フィールドを自動更新し、HTSUS 値列を表示したいと思います。

      Product: Product #2 (Soybean Meal)
HTS Commodity: 2.2.2 (Soybean Meal)

これが理にかなっていることを願っています。さまざまなビルダーを使用してマクロを作成する方法は理解していますが、これを達成する方法がわかりません。AfterUpdate() マクロを使用しようとしています。事前に助けてくれてありがとう。

4

2 に答える 2

1

これを行う1つの方法は次のとおりです。

SQLHTSUS_by_Productコードが

SELECT Product.[Product Name], HTSUS.[HTSTS Value]
FROM Product INNER JOIN HTSUS ON Product.Commodity = HTSUS.Commodity;

このような結果になります

Product Name    HTSUS Value
------------    -----------
Product #1      1.1.1
Product #2      2.2.2
Product #3      3.3.3

ここでcbxProductName、[Product] テーブルの [Product Name] フィールドから値を取得する という名前のコンボ ボックスがあるとします。リストから「Product #1」を選択するcbxProductName.Textと、「Product #1」になります。

フォーム上にテキスト ボックスを作成し、名前を付けますtxtHtsusLockedプロパティをに設定し、プロパティYesとして次のように入力しControl Sourceます。

=DLookUp("[HTSUS Value]","HTSUS_by_Product","[Product Name]=""" & [cbxProductName].[Text] & """")

ここでAfter Update、コンボ ボックス コントロールのイベントでcbxProductName、省略記号ボタン をクリックし、[[...]コード ビルダ] を選択して、次のように.RequeryステートメントをcbxProductName_AfterUpdate()プロシージャに追加します。

Private Sub cbxProductName_AfterUpdate()
Me.txtHtsus.Requery
End Sub

それを試してみて、それがあなたのために働くかどうか見てください.

于 2013-03-27T20:49:16.420 に答える
0

私のお気に入りを使用する必要があります: dlookup

http://allenbrowne.com/casu-07.html

于 2013-03-27T20:49:42.137 に答える