新しく質問する

サブフォームにクエリの結果を表示するには・・・?

役に立った:1件
  • 質問者:gaku105
  • 投稿日時:2008/05/26 23:00
  • 困り度:すぐに回答が欲しいです
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

ACCESSで勉強を始めたばかりの者です。
過去ログを検索してもわからなかったので教えてください。

ただ今検索用のテキストボックスを作り、コマンドボタンを押すとクエリが実行されるようになっております。

ここで、クエリの画面を出すのではなくサブフォームを作ってそこに表示させるようにしたいと思ってます。

表示させたい項目はすでに作ってはみたのですが、どうやったらコマンドボタンを押してそこに表示させるようにできるのかがわかりません。

もしかしたら大変未熟な質問をしているかもしれませんが、どうか教えてください。

この質問に回答する
このQ&Aは役に立ちましたか?(役に立った:1件)

回答(5件)

  • 参考になった:1件
  • 回答者:nda23
  • 回答日時:2008/06/04 16:41

原因は未定義の名前を使った場合です。何らかの値を入力すると、
一覧表が表示されることから考えると、[Forms]![A]![B]が間違っていると思います。
[Forms]:この通りに記述してください。
[A]:Aの代わりに単票フォームのフォーム名を指定します。
[B]:Bの代わりに単票フォーム上の検索用テキストボックスのコントロール名を
指定します。
実際にフォームが"検索画面"、テキストボックスが"検索"なら、
[Forms]![検索画面]![検索]となります。

あと、検索ボタンのクリックイベントですが、実効命令は以下が正しい。
Me.xxxx.Form.Requery
xxxxは単票フォーム内のサブフォームのコントロール名です。

通報する

この回答へのお礼

ありがとうございます。
色々試しているうちにできました!

原因は帳票フォームのレコードソースの「・・・」のところをクリックしてみたらクエリビルダのフィールドに[検索項目]という言葉があり、これを消してみたらうまくできました。

こんな初心者に丁寧に教えていただき、どうもありがとうございました。

  • 参考になった:0件
  • 回答者:nda23
  • 回答日時:2008/06/02 23:09

フォームのレコードソース・プロパティです。
プロパティシートの最も上(最初)に出てくるものです。
分類は「データ」です。フォームヘッダや詳細の処をカレントに
していると見つかりませんよ。

通報する

この回答へのお礼

何度もすみません。
帳票のほうのレコードソースにコピペしたものを入力し、単票のレコードソースとテキストボックスのコントロールソースが空欄になっていることを確認しました。

ところが、まだ単票のフォームを開くとパラメータ入力のウィンドウが出て、そこで入力するとフォームが開き・・・という一番下に書いたことが繰り返されてしまいます。

他にはどのような原因が考えられるものなのでしょうか?

どうぞよろしくお願いいたします。

  • 参考になった:0件
  • 回答者:nda23
  • 回答日時:2008/06/02 15:37

サブフォームとはフォーム(X)を別のフォーム(Y)の一部として使うということです。
「サブフォームの修正」とは帳票形式のフォーム(上記X)を別途、
デザインビューで開いて修正することを意味します。
単票形式(上記Y)の方をいくら探しても見つかりません。

通報する

この回答へのお礼

ありがとうございます。
サブフォームとフォームの関係はなんとなくわかりました。

最初の話に戻って申し訳ございませんが、

SELECT * FROM クエリ名 WHERE 検索項目=[Forms]![A]![B]

の入力箇所がいまいちよくわからないのですが、どこに入力すればよいのでしょうか?

サブフォームをデザインビューで開いても見つけることができませんでした。

よろしくお願いいたします。

  • 参考になった:0件
  • 回答者:nda23
  • 回答日時:2008/05/29 00:14

単票の方のフォーム(A)のレコードソースに
何か記述していませんか?
このフォームはテーブルとはリンクしない
非連結の状態でなければなりません。
よって、フォームのレコードソース、テキスト
ボックスのコントロールソースも空欄でなければ
なりません。

通報する

この回答へのお礼

すみません、何度試しても同じ結果となってしまいます。

(3)帳票形式のフォームのレコードソースを以下のように変更

というところをもう少し詳しく教えていただけますか?

サブフォームのどこでプロパティを開いたらよいのでしょうか?
また、レコードソースという言葉がなかったのですが、違う言葉で書かれてるものなのでしょうか???

大変恐縮ですが、よろしくお願いいたします。

  • 参考になった:0件
  • 回答者:nda23
  • 回答日時:2008/05/27 10:56

幾つかの方法がありますが、以下は一例です。
(1)クエリを元にした帳票形式のフォームを作成
(2)単票形式のフォーム(名前:A)を作り、以下の項目を配置
 ア.検索用テキストボックス(名前:B)
 イ.コマンドボタン
 ウ.サブフォーム(上記の帳票形式フォームを埋め込む。名前:C)
(3)帳票形式のフォームのレコードソースを以下のように変更
 SELECT * FROM クエリ名 WHERE 検索項目=[Forms]![A]![B]
(4)コマンドボタンのクリックイベント・プロシージャに以下を記述
 Me.A.Form.Requery

通報する

この回答へのお礼

ありがとうございます。
教えていただいたとおりにやってみてフォームから開いて実行してみたところ、まず「パラメータの入力 検索項目」というのが出てきて、そこで検索したい語句を入れてOKを押すと単票形式のフォーム(名前:A)が出てきて、そこで検索用テキストボックス(名前:B)にもう一度同じ語句を入れるとまた「パラメータの入力 検索項目」が出てきて、もう一度そこに同じ語句を入力するとようやくサブフォームに結果が出てくるという不思議なことになってしまいました。
これは一体どこがおかしかったのでしょうか?

  
このQ&Aは役に立ちましたか?(役に立った:1件)

このページのトップへ

Facebook公式ページ

公式Twitter