• 締切済み

accessサブフォームでのパラメータ

皆様いつも的確なアドバイスありがとうございます。 Access2002について質問させて下さい。 パラメータクエリを作りました。 そのクエリをサブフォームに埋め込み、ボタンを押すと、クエリが組み込まれたフォームが立ち上がるという仕組みを作りました。 クエリ単体で動かすときちんとパラメータが現れ、製造記号を入力すると、それに該当する製造番号の商品が現れます。パラメータは次のとおりです。 Like [製造番号検索] & "*" クエリでは不都合は無いのですが、 そのクエリをサブフォームに埋め込んだフォームを開こうとすると、同じパラメータが2度現れてしまいます。 サブフォームに関する特性があるのでしょうか? もしくは、パラメータの設定が悪いのでしょうか? 今はフィルタで無事動いているのですが、どうして出来ないのかが知りたいのです。 ご指南宜しくお願いします。 haru

みんなの回答

回答No.2

お疲れ様です サンプルを作成して自分でもやってみましたが、 問題なく動作しますね... (スイマセン、同じフォームは2つ開けないと思っていたのですが、開けますね...サブフォームとメインフォームだったら...) >ボタンを押すと、クエリが組み込まれたフォームが立ち上がるという仕組みを作りました。 多分、このところに問題があるのではないかと思われますが? ちなみに自分は(VBAで)下記のようにフォームを呼び出して実験しました。 *stFormName = "サブ" *Docmd.OpenForm stFormName 余談ですが、(今回の)やりたいことはVBAを使用すれば、もっとスマートにできそうです 参考になれば...

haru_12345
質問者

補足

how-do-you-doさま そうですかー。動きますかー。 今新しく作ってやってみましたが、フォームを直接ダブルクリックしても、別のフォームに貼り付けたボタンから「マクロ」で「フォームを開く」でもやはりだめなんです。ちなみに教えて頂いたコードを書いてみましたが、やはりパラメータが2度出ます。 環境はAccess2002 windowsxpです。 やりたいことは非常に単純に、パラメータをもっているクエリをサブフォームとして表示したいだけなのです。私のAccessがおかしいと思って、会社でやってもやはりだめなんです。 出来る出来ないよりは、なぜなんだろうにとらわれてしまって・・・。 忙しい中、気にかけてくださりありがとうございました。 haru

  • yoisho
  • ベストアンサー率64% (331/516)
回答No.1

もしかして、パラメータクエリがメインフォームのレコードソースにも設定されていませんか? そうだとすると、メインフォームが開く時とサブフォームが開く時の 2 回、パラメータ入力ダイアログボックスが表示されると思います。 (はずしてたらスミマセン)

haru_12345
質問者

補足

アドバイスありがとうございます。 残念ながら、フォームはただの操作パネルとしているのでレコードソースはありません。 開くというボタンを押さずに直接フォームを開いてもやはりパラメータが2度でます。サブフォームコントロールの特性なのかと考えたいところなのですが・・・ いずれにしても、気にかけていただきありがとうございます。 haru

関連するQ&A

  • Access2000 フォーム/サブフォームについて

    質問させていただきます。 フォーム/サブフォーム形式で画面を作っています。サブフォームは帳票形式で、複数のレコードを表示しており、各行の左にコマンドボタンを用意し、それをクリックすると、更新クエリー、削除クエリーが動くようにしています。 しかし、更新、削除クエリーとも ”0件のレコード”で処理が正しく動作しません。 ちなみに、両クエリの抽出条件は・・・ [Forms]![メインフォーム]![サブフォーム]![商品コード] しかし、フォームを使わずクエリーから実行する(パラメータに条件を手入力する)と正しく動作します。 記述ミスがないか何度も見返したのですが・・・。 「サブフォームの目的の行の商品コードと一致するデータを処理する」としたいのですが・・・。

  • アクセスのパラメータクエリをフォームからレポートに表示するには

    どなたかわかる方、教えてください! アクセスで、サブフォームにパラメータクエリ設置し、パラメータに抽出条件を入れるとサブフォームに一覧が表示するように設定しました。 この、いったんサブフォームに抽出したものを今度はそのままレポートにしてプリントアウトしたいと思っています。 同じパラメータクエリをフォームに設定すると、もう一回パラメータを入れなければならなくなってしまいます。 すぐにフォームからレポート表示に切り替えてプリントアウトする方法はありますか? よろしくお願いします。

  • AccessサブフォームでのDoCmd.ApplyFilter

    DoCmd.ApplyFilterの使い方について。 単体では正常に動くフォームを、あらた作ったフォーム上にドラッグして(サブフォーム?)使おうとしています。 単体ではうまく動いていたDoCmd.ApplyFilter が、サブに入るとエラーになります。 対処法をご指南ください。 ちなみにメインフォームは空です。

  • Access97でサブフォームのページ移動

    Access97のおはなしです。 サブフォームを表形式で埋め込んでいます。 検索フォームを作成しサブフォームの項目で検索します。 検索結果よりメインのフォームに切り替える際に、 サブフォームの検索目標のあるページに移動することはできないでしょうか? たとえばの例ですが、 メインフォームは会社情報、 サブフォームは取扱商品といった感じです。 クエリーのページ移動ではページ番号は数字ではないとだめで「Like [商品名]」といったページの移動なできないんですよね。 なにかいい方法はありますでしょうか? ちなみにAccessBASICは全然分かりません(泣)

  • ACCESSで、メインフォームとサブフォームがあるとき・・・

    Accessで、メインフォームとサブフォームがあり、メ インフォームのテキストボックスで期間を指定し、再 クエリを行うマクロボタンでサブフォーム上に期間指 定したデータのみが表示されるようにしています。 また、Access起動時に開くフォームがあり、そのフォ ームに、先ほど上述したメインフォームが開くマクロ ボタンを作成したところ、パラメータの入力画面が出 てきてしまいました。 恐らく、サブフォームの抽出用のクエリに設定してあ るものだと思いますが、これが表示されないようにす ることは出来ないのでしょうか?

  • サブフォームの条件について(アクセス2003)

    アクセス2003で入力フォームを作成しています。入力フォーム上には、売上日「2009/07/30」とその詳細を入力します。このフォーム上にサブフォームの過去6回分の売り上げデータも表示します。ここで、このサブフォーム上に同じ売り上げ日「2009/07/30」が表示されるのですが、この日の分は2重表示になるので省きたいと考えています。クエリの条件のところで、売上日:<Date()としてとりあえず、今日入力して今日のうちに印刷すれば、サブフォーム上は「7/30」分は表示されないのですが、これが明日「7/31」になると入力フォームの売上日は「7/30」でサブフォーム上の売上日も「7/31」より前の「7/30」なので両方表示されてしまいます。当日中に印刷までしてしまえばよいといわれればそれまでなのですが、それでは不便です。フィルタの非選択フィルタを使おうとも思ったのですが、いろいろな人が入力操作するので、なるべく簡単にできたらと思います。 どなたかよい方法を教えてくださいませんか?よろしくお願いいたします。

  • Access ADO パラメータークエリー

    Access ADOでフォームのコントロールを参照するパラメータークエリーを開こうとすると、どうしても「SQLステートメントが正しくありません・・・」のエラーが発生してしまいます。 もちろん、クエリー単体では正常に動作しますが、クエリーのパラメーターに参照するコントロールを登録してもADOでは開けません。 現在はパラメータークエリーの抽出結果を一時テーブルに書き込んで、これをADOで開くという非効率極まりない方法で凌いでいますが、どうすれば良いのでしょうか。

  • アクセス メインフォームの条件指定にてサブフォームを表示

    アクセス初心者です。 現在アクセス2000、MEにてシステム作成中です。 業務報告書を作っています。 メインフォームに2つのタブを作成。 1つのタブに3種類のサブフォーム(別々のクエリ)を表示しています。 現在は全てのデータ件数を表示していますが、これを期間指定して、その期間だけの件数を表示させるようにしたいのです。 今まで試してみた結果です。 考え方(1)パラメータとして入力  各クエリにbetweenパラメータとして入力  ⇒これは、3つのクエリ×2があるので入力を促す同じ処理が何回も表示され、とても使えませんでした。 考え方(2)メインフォームに非連結テキストボックスを作成して、それを参照  ⇒まず、終了年月日のイベント(更新後処理)にサブフォームを再クエリ(サブフォームのクエリには、メインフォームの開始と終了範囲をbetweenにて抽出)   ⇒⇒すると、そのままでは表示されず、デザインビューの切り替えなどを行うと表示されます。 そのために、マクロ(再クエリの後)に「オブジェクトの再描画」でこのサブフォームを再表示するようにしましたが、結果は同じです。 現在このような状態です。 マクロは分りますが、VBAはほとんど分らない状態です。 質問1 パラメータ指定の場合、各クエリに1回のパラメータを伝えられる方法があるのでしょうか? 質問2 再クエリしたこのデータをきちんと表示する方法は? どんな操作方法が良いのかはわかりません。 他に簡単でわかりやすい方法があれば、教えてください。どなたかよろしくおねがいします。 また、同じようにレポートも出力します。 同様の形式です。こちらも変更の予定です。 ですから、そのことを考えると、1回のパラメータで各クエリに伝えられるのがいいのですが・・・

  • パラメータクエリを一つにまとめたい

    クエリ1を基にフォーム1を作成、 クエリ2を基にフォーム2を作成、 クエリ1も2もパラメータクエリを使用していて フィールド名は「番号」データ型はテキスト型です。 そして新規にフォーム3を作成しフォーム1とフォーム2をドラッグしました。 この状態でフォーム3をダブルクリックすると パラメータの入力を2回求められますがどちらも同じ番号を入力しています。 (「001」などを2回入力) これを1回にすることは可能でしょうか? ・番号フィールドの基テーブルはクエリ1と2は違うテーブルです。 ・クエリ1と2は一つにまとめたくありません。 フォーム3上に別々に表示させたいです。 ・クエリ1には全ての番号がありますがクエリ2には抜けている番号があります。 「クエリ1の全レコードとクエリ2の同じ結合フィールドのレコードだけを含める。」で全ての番号を表示できる状態です。 説明が下手ですいません。 アドバイスお願い致します。

  • Accessのサブフォームからフォームフィルタを使ってメインフォームも含めたレコードの抽出が出来ないのは何故でしょうか?

    フォームフィルタを利用してサブフォームに入力されている値でレコードの抽出を行いたいのですが、うまくできません。 メインフォームが持っているレコード全てを持ってきます。 メインフォームに含まれているデータが100件なら、それ全てを表示してしまうということです。 私が抽出したいレコードは2件だけです。 メインフォームからフォームフィルタを利用して抽出すると正しい結果が得られます。 これはどうしてでしょうか? サブフォームへの設定が何か足りないのでしょうか? 親・子のフォームのテーブルは同一のものです。 カテゴリーで親と子にフォームを分けました。 親にはクエリはなくて、リレーションシップしたテーブル数種から直接フォームにひっぱってあります。 子は一つのテーブルからクエリを作って、そのクエリからフォームに引っ張っています。 Access2003です。 どなたかご教示いただきますようお願いいたします。

専門家に質問してみよう