2017-01-03 17 views
0

を有効/無効のフォーム一覧のフィールドを有効にします。は私のデータベース内の2つのテーブルがあり、親テーブル内のレコード属性に基づいて

Add_Riskフォームでリスクを追加する場合、ユーザーはドロップダウンコンボボックスから関連するInitiative_IDを選択する必要があります。

この選択に基づいて、Add_Riskフォーム内のRisk_Areaという名前の値リストが有効または無効になります。これを判断するには、Initiative_IDでレコードを検索し、Add_New_Initiativeフォーム内のTierという値リストに対してユーザーが以前選択した回答を確認する必要があります。 Add_Riskフォーム上のInitiative_IDがnullの場合

  1. 、そしてRisk_Areaは無効になります。

    は論理的に、私はそれのようなプレイアウト参照してください。 Add_Riskフォーム上のInitiative_IDがない空白の場合

  2. は、その後、ユーザーはAdd_Riskフォーム上で選択/入力したことをInitiative_IDとレコードのAdd_New_Initiativeフォーム上のティア値をルックアップします。
  3. ティアが1または2の場合、Add_RiskフォームでRisk_Areaが有効になります。
  4. Tierが3またはNullの場合、Add_RiskフォームでRisk_Areaが無効になります。

これをVBAでコーディングすると、他のフォーム/テーブルに格納されているTier値をどのように参照できますか?

+0

質問はありますか? Mysqlタグは何をしなければならないのですか? – Lybren

+0

実際の質問が役に立ちます。謝罪いたします。私はそれを追加しました。 – William

+0

'Risk_Area.enabled =(ティア= 1またはティア= 2)'? – Beth

答えて

0

質問によると、他のテーブルのデータを参照/参照することができません。
dlookupを実行して、テーブル/クエリ内の特定の値を検索します。

dim VarTier as integer 
VarTier = nz(Dlookup("Tier","Add_New_Initiative","Initiative_ID=" & me.Initiative_ID.value),-1) 

のDLookupが返されます:-1にNZは、このようにVarTierを行うことによって処理され、一致基準にレコードが見つかりませんが、ありません

  1. nullの場合、あなたはif文でそれを扱うことができるようにします。
  2. Initiative_IDがAdd_Riskフォームと等しいレコードが見つかった場合は、そのレコードのTierの値を返します。

次に、ルックアップの結果を単純なifと比較する必要があります。

If Vartier = 1 or VarTier = 2 then 
    me.list.enabled = true 
End If 

ここでのDlookupの詳細。
https://msdn.microsoft.com/es-es/library/office/ff834404(v=office.15).aspx

+0

'プライベートサブInitiative_ID_AfterUpdate() 薄暗い整数varTier = NzのようvarTier(のDLookup( "ティア"、 "新たな取り組み"、 "Initiative_ID =" &Me.Initiative_ID.Value)、-1) varTier = 1の場合またはvarTier = 2次に Me.Risk_Area.Enabled = Trueの エルス Me.Risk_Area。Enabled = False End If End Sub' – William

+0

End Ifの前に 'Else me.list.enabled = false'を追加し、常にリストを無効にします。有効/無効を入れ替えると、常にリストが有効になります。 varTierが常に-1を返し、Tierフィールドの値を取得していないことを意味します。助言がありますか? – William

+0

あなたの推測は99%正しいです。 Dlookupは一致するレコードが見つからないためnullを返します。パラメータが正確に書かれていることをDlookup内で再度確認します。 'Tier'はテーブル' New Initiatives'のフィールド名とまったく同じでなければなりません。また、 'Initiative_ID'がテキストの場合、me.Initiative_ID.valueは一重引用符で囲む必要があります。 – Lybren

関連する問題