2

Access アプリケーションのフォームに、1 組のカスケード コンボ ボックスがあります。1 つは非バインド (ソース) で、もう 1 つはバインド (Information、長い InformationID にバインド) です。ソースは、必須フィールドである情報で使用可能な選択肢を絞り込むために使用されます。フォームには、もう 1 つの必須フィールドがあります。タイトルです。

ユーザーがコンボを正しく選択できるようにし、作成後に各レコードを確認するときに使用するために、各コンボで現在選択されている値に関連付けられた読み取り専用情報をフォームに表示する必要があります。これには、いくつかのリッチ テキスト メモ フィールドが含まれます。この情報は、フォームのレコード ソースの一部ではありません (これを含めると、レコード セットが更新できなくなります。また、多くのリッチ テキスト メモが含まれている可能性があるため、パフォーマンスに影響を与えることは言うまでもありません)。ユーザーは、サイズが制限された読み取り専用のメモ フィールドの 1 つをダブルクリックして、一度により多くのテキストを表示するポップアップ フォームを表示することができます。

最初に、必要なデータを含む複数の非表示の列を含むようにコンボを定義して、フォームの読み取り専用フィールドの数式でこれらの非表示の列を使用しました。これにより、リッチ テキスト メモ フィールドが切り捨てられました。立ち入り禁止。

次に、コンボにリンクされたサブフォーム (境界線がないため、フォームの一部のように見えます) を使用してデータを表示しようとしました。これは機能しますが、ユーザーがサブフォーム内のフィールドをクリックすると、メインフォームの他の必須フィールドが入力されていないことを知らせるメッセージが表示される可能性があるという副作用があります (フォーカスをサブフォームはメイン フォームを保存しようとします)。ただし、メイン フォームの他のフィールドをクリックすると、同じ状況で同じエラーが発生することはありません。一貫性がなく、ユーザーを夢中にさせる可能性があります (テスト中に私を夢中にさせます)。繰り返しますが、行きません。

サブフォームの欠点を回避しながら、完全なリッチ テキスト フィールドを表示できるようにする、これを行うための別の手法はありますか?

4

2 に答える 2

1

関連するリッチ テキスト メモ コンテンツをユーザーに表示させたいが、編集させたくないようです。情報コンボ ボックスの After Update イベントで、DLookup()メモ フィールドのコンテンツを取得し、そのリッチ テキストをテキスト ボックスにロードするために使用します。

InformationIDメモフィールドを含むテーブルにも存在し、数値データ型であると仮定します...

Me.txtDetails = DLookup("memo_field", "table_name", _
    "InformationID = " & Me.cboInformation)

がテキストの場合InformationID、その式の最後の部分に引用符を追加しますDLookup

    "InformationID = '" & Me.cboInformation & "'")

フォームの On Current イベントでも同じことができるので、ユーザーはレコード間を移動するときにそれらの詳細を確認できます。

于 2013-01-28T16:17:51.813 に答える