• ベストアンサー

アクセス97のVBAでパラメータを指定する方法

いつもたいへんお世話になっております。 アクセス97で、フォームを複数作りました。フォーム1、フォーム2、フォーム3。 それぞれのフォームのコマンドボタンでフォーム4を呼び出します。 フォーム4のレコードソースにクエリを使用しますが(クエリ1)、 このクエリにの抽出条件に、最初のフォームのコントロールの値(部門)を設定したいのですが、抽出条件に、「FORMS!フォーム1!部門」とすると、同じクエリを他のフォームには使えませんよね?パラメータを作成して、それぞれのフォームのコマンドボタンのなかで指定できてしまえば、クエリ1と、フォーム4を共有できますよね。現在は、それぞれのフォームに対応するフォーム4とクエリ1を作成しています。なんとかなりませんか? 説明が難しくなってきちゃった・・・ ・・・パラメータの入力要求をVBAで処理したいのですが、いい方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。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)
回答No.2

フォーム4の抽出条件は、クエリーで設定しないとないとまずいんでしょうか? フィルターでの処理でも良ければ、フォーム1~3からフォーム4を開くときに、OpenArgsでパラメータを渡して、Openイベントでフィルターをかけてやるのが簡単かと思いますが。

関連するQ&A