0

2 種類のリクエストを送信するために使用できるフォームを作成する必要がありますが、収集する必要があるデータは種類ごとにわずかに異なります。つまり、同じフォームで満たされる通常の注文と特別なリクエストがあります。
現在、フォームには「Stock Items」または「Special Requests」のドロップダウンが含まれており、Stock Items が選択されている場合は、別のフィールド「ItemName」(コントロール リスト) を使用して、取得する Stock Item を選択します。再注文しました。管理リストは、定期的に在庫があるアイテムのスペルのバリエーションを最小限に抑えるために重要です (レポートを簡単にするため)。一方、特別なリクエストはマネージャーによって承認される必要があり、別のフォームからの元のリクエスト ID に関連付ける必要があり、ItemName を予測する方法がないため、ItemName フィールドはフリー テキスト フィールドにする必要があります。したがって、フローは次のようになります。「特別なリクエスト」が選択されている場合、コントロール リストから ItemName フィールドをクリアしてフリースタイルの入力を許可する必要があり、「マネージャーが承認しましたか?」というラベルのチェックボックスを表示する必要があります 最後に、関連付けられた特別なリクエスト ID を入力するためのフィールドが表示される必要があります。これもおそらく制御されます。基本的に、選択内容に応じて、フォームの流れを制御できる必要があります。

フォームのデザイン ビューに移動し、ItemName フィールドを強調表示し、コンボ ボックスからテキスト ボックスに変更して、2 つの形式を切り替えることができることを確認しました。次に、[書式] タブから [条件付き書式] を選択しましたが、利用可能なオプションでは、VBA プログラミングの経験がない別のフィールドの内容を評価できません...これは VBA コードなしで実行できますか?

4

1 に答える 1

0

では、開始するためのちょっとしたヒントがあります。特定のケースでは、リクエスト タイプに基づいてコンボ ボックスとテキスト ボックスを切り替える必要はありません。「コンボ ボックス」という名前は、テキスト ボックスとドロップダウン リストを組み合わせたものであることを示しています。

.LimitToListコンボ ボックスのプロパティが の場合、Noユーザーリストから項目を選択するか、他の値を入力できます。その場合、リストから項目を選択する必要があり.LimitToListます。Yes

.LimitToListしたがって、フォームで行う必要があるのは、「リクエスト タイプ」のコンボ ボックスの現在の値に基づいて、「アイテム」のコンボ ボックスのプロパティを切り替えることだけです。After Updateこれは、"Request Type" コンボ ボックスのイベント ハンドラーで 1 行の VBA コードで実現できます。

Option Explicit

Private Sub cbxRequestType_AfterUpdate()
    Me.cbxItem.LimitToList = (Me.cbxRequestType.Value = "Stock Item")
End Sub

ご想像のとおり、同じイベント ハンドラー ( という名前のコンボ ボックス用cbxRequestType) を使用して、プロパティを切り替えることにより、フォーム上の他のコントロール (たとえば、「マネージャー承認済み」のチェックボックス) を表示/非表示にすることができ.Visibleます。

于 2013-11-08T12:39:43.490 に答える