2017-04-09 6 views
0

私は2つのMS Accessテーブルを持っています:IdMhsT_UKTです。 [T_UKT].[UKT]のいくつかの基準から[IdMhs].[SPP]を自動的に入力したいと思います。フォーム上で行を編集することはできないため、クエリの関係に入れることはできません。DLookupを[フォーム]からMsAccess 2013のテーブルフィールドに保存する方法は?

だから私は、フォームを作成し、私が使用して、それが正常に動作することにより、自動的に番号SPP(フォーム上のテキストボックス)を取得:

=DLookUp("SPP";"T_UKT";"UKT = " & [Form].[UKT]) 

問題がある:ルックアップ値は、単にフォーム上に表示さ、結果は表([IdMhs].[SPP])のフィールドに入力されません。

IdMhsテーブルに自動的に記入する必要がありますか?

+0

DLookupは無効です。 psuedocodeではなく、実際に使用されている式を投稿してください。 – Parfait

答えて

1

テーブルに値を保存するマクロまたはVBAコードが必要です。フォームがIdMhsテーブルにバインドされている場合は、単に好き:

Me!SPP = Me.tbxSPP

本当のトリックはにコードを置くためにどのようなイベントを考え出すされています。あなたはUKT値が選択されているコントロール(おそらくコンボボックス)を持っていますか?そのAfterUpdateイベントを使用します。

なぜSPP値を保存し、テーブルを結合するクエリでそれを取得するだけではないのですか?

テーブル関係の性質は何ですか? T_UKTはルックアップテーブルですか?もしそうなら、それをRecordSourceのフォームに含めることができなければならず、SPP値はテキストボックスに表示することができ、DLookupは不要です。ドメイン集約関数は、フォームやレポートではゆっくりと実行でき、最後の手段として選択する必要があります。同じコードを使用して値を保存します。クエリ結合は、 'IdMhsからすべてのレコードを表示し、一致するT_UKTのレコードのみを表示'する必要があります。 T_UKT SPPフィールドにバインドされたテキストボックスをLockedに設定します。はい、TabStop No.

+0

私は空のUKTを持っていれば編集できませんので、私はクエリーに入れません。フォームにクエリーnの数字を入れてもかまいません... – bomba

+0

ここでの関係:ルックアップテーブルはIdMhs.UKTフィールドですT_UKT.UKTフィールド。 T_UKTで私はSPT番号を持っています。それはUKTがId.Mhsテーブルまたはフォームから選択したかどうかを表示したいのです。 – bomba

+0

T_UKTのフィールドは、[year]、[UKT]、[SPP] ...です。IdMhsのフィールドは、[Id]、[UKT]、[SPP] ...です。 IdMhs.UKTフィールドはT_UKT.UKTフィールドを参照してください。それからT_UKTで私はSPT番号を持っています、それはUKTがId.Mhsテーブルやフォームから選択したかどうかを表示したいのです。 IdMhs.SPP参照フィールドにUKT.SPPを書き込んでいない理由は、SPPは数年後に変更されるために編集する必要があります。一方、UKTは永続的な番号です。 – bomba

関連する問題