MS Access 2003 で、ユーザーが既存のクエリから選択できるフォームを作成し、フォーム内に結果を (DataSheet ビューのサブフォームとして) 表示したいと考えています。ユーザーは、1 つ以上のレコードを選択し、親フォームのボタンをクリックして、選択内容に基づいて特定のアクションを実行できます。制限がほとんどない任意のクエリで動作し、クエリの完全な結果 (すべての列) を表示できるようにしたいと考えています。私が持っているかもしれない唯一の要件は、特定のアクションのための特定のフィールドが含まれていることです。たとえば、「電子メールを送信」アクションがある場合、クエリには「電子メール」という名前のフィールド、または「宛先」と「件名」が必要になります。
実行時に DataSheet サブフォームの DataSource を変更しても問題ありません。VBA を使用する前に変更しました。表示される列を変更することが問題です。
.NET WinForms アプリでは、GridView コントロールの「列の自動生成」を使用するか、コードで GridView.Columns コレクションを直接使用して、これを行うことができます。VBA では、DataSheet ビューから列を追加/削除する方法がわかりません。また、クエリに基づいてそれらを自動生成する方法もわかりません。列はフォーム (フォーム ビュー) に配置されたコントロールによって制御されているように見えますが、VBA を使用してコントロールを追加/削除することは可能ですが、フォームはデザイン ビューに配置する必要があり、データベースへの排他的アクセスが必要です。 - 非常に乱雑に聞こえるので、排他アクセス部分は避けたいと思います。
何か不足していますか?これを行う簡単な方法はありますか?