- ベストアンサー
アクセス97のVBAでパラメータを指定する方法
いつもたいへんお世話になっております。 アクセス97で、フォームを複数作りました。フォーム1、フォーム2、フォーム3。 それぞれのフォームのコマンドボタンでフォーム4を呼び出します。 フォーム4のレコードソースにクエリを使用しますが(クエリ1)、 このクエリにの抽出条件に、最初のフォームのコントロールの値(部門)を設定したいのですが、抽出条件に、「FORMS!フォーム1!部門」とすると、同じクエリを他のフォームには使えませんよね?パラメータを作成して、それぞれのフォームのコマンドボタンのなかで指定できてしまえば、クエリ1と、フォーム4を共有できますよね。現在は、それぞれのフォームに対応するフォーム4とクエリ1を作成しています。なんとかなりませんか? 説明が難しくなってきちゃった・・・ ・・・パラメータの入力要求をVBAで処理したいのですが、いい方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 フォーム4のレコードソースをSQLステートメントで指定すればいいと思います。 それを標準モジュールにプロシージャ化しておいて、抽出条件を引数にすればいいと思います。 標準モジュールに、 Public Sub myOpenForm4(Cond As String) SQL = "(前部)" & Cond & "(後部)" DoCmd.OpenForm "フォーム4" Forms!フォーム4.RecordSource = SQL End Sub としておいて、各フォームのコマンドボタンのクリックイベントでこのプロシージャを呼び出せばいいと思います。 参考になれば幸いです。 では。
その他の回答 (1)
- yoisho
- ベストアンサー率64% (331/516)
フォーム4の抽出条件は、クエリーで設定しないとないとまずいんでしょうか? フィルターでの処理でも良ければ、フォーム1~3からフォーム4を開くときに、OpenArgsでパラメータを渡して、Openイベントでフィルターをかけてやるのが簡単かと思いますが。