Accessのフォームがうまく検索できません。
◇-Accessのフォームがうまく検索できません。-ゆきえ(10/11-17:09)No.14805 ┗Re:Accessのフォームがうまく検索できません。-Rei(10/12-09:54)No.14843 ┗Reiさ〜ん できました!多分 [報告]-ゆきえ(10/12-14:06)No.14863 ┗Re:Reiさ〜ん できました!多分 [報告]-Rei(10/12-16:52)No.14876 ┗頭ではわかるのですが・・・-ゆきえ(10/12-18:08)No.14881 ┗なるほど-Rei(10/12-18:42)No.14885
14805 | Accessのフォームがうまく検索できません。 | ゆきえ | 10/11-17:09 |
OS名:Windows98 パソコン名:gateway ソフト名:Access97 Accessで社員情報なるものを作りました。 <説明が下手でごめんなさい。> テーブルには[社員情報]他[所属名]などがあります。 クエリーには[全員一覧]などがあります。 帳票形式では[全員一覧]の抽出条件で『Like "*" &』を使って うまく検索ができました。 しかし、単票形式でもっと単純で簡単な検索がしたいのですが うまくできません。 ◆人の名前を検索して、その人の情報を表示させたい という感じです。 今は、リストボックスで入力も可の状態にしています。 値集合ソースにはSQLステートメントを使い、社員情報全部を載せ、 列数と列幅で名前だけを表示させるように指定しました。 で、次にその名前を選んだらデータが表示されるようにしたいのです・・・ 私が取った行動ですが、更新後処理の[イベントプロシージャ]で Me.RecordSource="全員一覧"にしたり、"社員情報"にしたり Me.RecordSetだとか色々身近なデータを手本にして入れて見たのですが うまくいかず・・・ そして今はシンプルにDoCmd.Requeryにとどまっています。 どうしたら、うまく検索ができるのでしょう・・・教えてください。 |
14843 | Re:Accessのフォームがうまく検索できません。 | Rei | 10/12-09:54 |
記事番号14805へのコメント ゆきえさんは No.14805「Accessのフォームがうまく検索できません。」で書きました。 >ソフト名:Access97 >Accessで社員情報なるものを作りました。 ><説明が下手でごめんなさい。> >テーブルには[社員情報]他[所属名]などがあります。 >クエリーには[全員一覧]などがあります。 >帳票形式では[全員一覧]の抽出条件で『Like "*" &』を使って >うまく検索ができました。 > >しかし、単票形式でもっと単純で簡単な検索がしたいのですが >うまくできません。 >◆人の名前を検索して、その人の情報を表示させたい >という感じです。 >今は、リストボックスで入力も可の状態にしています。 >値集合ソースにはSQLステートメントを使い、社員情報全部を載せ、 >列数と列幅で名前だけを表示させるように指定しました。 >で、次にその名前を選んだらデータが表示されるようにしたいのです・・・ >私が取った行動ですが、更新後処理の[イベントプロシージャ]で >Me.RecordSource="全員一覧"にしたり、"社員情報"にしたり >Me.RecordSetだとか色々身近なデータを手本にして入れて見たのですが >うまくいかず・・・ >そして今はシンプルにDoCmd.Requeryにとどまっています。 > >どうしたら、うまく検索ができるのでしょう・・・教えてください。 もう一つ別にクエリーを作成して、 リストボックス(コンボ?)の値を名前の抽出条件に 指定するようにすればリストボックスの値にに応じた レコードを抽出できます。 ご存知だと思いますが抽出条件には forms![フォームの名前]![コンボの名前] を指定します。 この作成したクエリーをフォームのRecordSourceに指定して リストボックスの更新後処理でMe.Requeryすれば たぶんご希望のとおりの動作をします。 |
14863 | Reiさ〜ん できました!多分 [報告] | ゆきえ | 10/12-14:06 |
記事番号14843へのコメント Reiさんは No.14843「Re:Accessのフォームがうまく検索できません。」で書きました。 >もう一つ別にクエリーを作成して、 >リストボックス(コンボ?)の値を名前の抽出条件に >指定するようにすればリストボックスの値にに応じた >レコードを抽出できます。 >ご存知だと思いますが抽出条件には >forms![フォームの名前]![コンボの名前] >を指定します。 >この作成したクエリーをフォームのRecordSourceに指定して >リストボックスの更新後処理でMe.Requeryすれば >たぶんご希望のとおりの動作をします。 > 他のAccessではできたのに、恐らくちょっとしたミスなのかどうしても 動かず、自分なりにアレンジしてみました。(といってもたまたまできたのですが・・・) Reiさんのおっしゃったように、まずクエリーを作成しました。(検索クエリー) そしてコンボボックスの値集合ソースでSQLを使い名前を表示させました。 (ここで不思議だったのがなぜか、他のではできたのに同じようにやってもここでは [forms]![フォームの名前]![コンボの名前]だと表示されなくなってしまうことでした。) そして更新後の処理でMe.RecordSource="検索クエリー"をしたら検索結果が出てくるように なりました!!フォームのレコードソースはそのままテーブルの名前のままでした。 しかしレコード件数が1件になってしまうため、一応隣に「新規」ボタンを つくるようにしたら、件数もちゃんと出てきて、試したところちゃんとテーブルにも 他のフォームにも反映されていました。 感激です。Reiさんがレスをくださったおかげで落ち着いて頭を整理し、考えることができまし た。 こんな作業1つ1つでも思いどおりに動くと嬉しいものですね。 本当にありがとうございました。 ゆきえ |
14876 | Re:Reiさ〜ん できました!多分 [報告] | Rei URL | 10/12-16:52 |
記事番号14863へのコメント ゆきえさんは No.14863「Reiさ〜ん できました!多分 [報告]」で書きました。 >Reiさんのおっしゃったように、まずクエリーを作成しました。(検索クエリー) >そしてコンボボックスの値集合ソースでSQLを使い名前を表示させました。 >(ここで不思議だったのがなぜか、他のではできたのに同じようにやってもここでは >[forms]![フォームの名前]![コンボの名前]だと表示されなくなってしまうことでした。) なぜでしょう?わからないですね。 たぶんどこか間違っています(笑)。 >そして更新後の処理でMe.RecordSource="検索クエリー"をしたら検索結果が出てくるように >なりました!!フォームのレコードソースはそのままテーブルの名前のままでした。 デザイン時のプロパティシートで「そのままテーブルの名前」を 指定していたとしても、 「更新後の処理でMe.RecordSource="検索クエリー"」と しているのですからフォームのレコードソースはその時点で 「検索クエリー」に変わっているのです。 意味わかりますか? >しかしレコード件数が1件になってしまうため、一応隣に「新規」ボタンを >つくるようにしたら、件数もちゃんと出てきて、試したところちゃんとテーブルにも >他のフォームにも反映されていました。 すみません、これって意味がわからないです。 プロセスはどうであれうまくいって良かったですね。 |
14881 | 頭ではわかるのですが・・・ | ゆきえ | 10/12-18:08 |
記事番号14876へのコメント Reiさんは No.14876「Re:Reiさ〜ん できました!多分 [報告]」で書きました。 >デザイン時のプロパティシートで「そのままテーブルの名前」を >指定していたとしても、 >「更新後の処理でMe.RecordSource="検索クエリー"」と >しているのですからフォームのレコードソースはその時点で >「検索クエリー」に変わっているのです。 >意味わかりますか? はい。頭では理解できます。たしかに検索クエリーを見に行くとちゃんと検索した データが入っていますものね。すごく納得です。 ただ、フォームのプロパティを見たときにレコードソース項目が検索クエリーになっていないのは なんででしょう・・・ん〜・・・ あっ、検索する前(開いた時)は「そのままのテーブル」からデータを引っ張っているから・・・? <<検索した時そのフォームのレコードソースはその時点で検索クエリーに変身する>>という事でしょうか。 だから目に見えない・・・と? >>しかしレコード件数が1件になってしまうため、一応隣に「新規」ボタンを >>つくるようにしたら、件数もちゃんと出てきて、試したところちゃんとテーブルにも >>他のフォームにも反映されていました。 >すみません、これって意味がわからないです。 たぶん、検索クエリーの中身はいつも1件しかないから1件と表示されるんだと思います。 って説明が下手ですね。すいません。 >プロセスはどうであれうまくいって良かったですね。 ありがとうございます。ただ、また問題があったんですけどね^^; 新規で書いてあるので見つけたらお願いします。 |
14885 | なるほど | Rei | 10/12-18:42 |
記事番号14881へのコメント ゆきえさんは No.14881「頭ではわかるのですが・・・」で書きました。 >Reiさんは No.14876「Re:Reiさ〜ん できました!多分 [報告]」で書きました。 >>デザイン時のプロパティシートで「そのままテーブルの名前」を >>指定していたとしても、 >>「更新後の処理でMe.RecordSource="検索クエリー"」と >>しているのですからフォームのレコードソースはその時点で >>「検索クエリー」に変わっているのです。 >>意味わかりますか? > >はい。頭では理解できます。たしかに検索クエリーを見に行くとちゃんと検索した >データが入っていますものね。すごく納得です。 >ただ、フォームのプロパティを見たときにレコードソース項目が検索クエリーになっていないのは >なんででしょう・・・ん〜・・・ >あっ、検索する前(開いた時)は「そのままのテーブル」からデータを引っ張っているから・・・? ><<検索した時そのフォームのレコードソースはその時点で検索クエリーに変身する>>という事でしょうか。 >だから目に見えない・・・と? プロパティシートはそのフォームの初期状態を 設定してあるだけなので、「更新後処理」などの イベントプロシージャで 「Me.RecordSource="検索クエリー"」 としていれば、このステップが実行された時に 「レコードソース:なんたらテーブル」 が、 「レコードソース:"検索クエリー"」 に内部的に書き換えられているんです。 再度、意味わかりますか? >たぶん、検索クエリーの中身はいつも1件しかないから1件と表示されるんだと思います。 >って説明が下手ですね。すいません。 わかりました、了解です。 そのとおり、クエリーでレコードを 絞り込んでいるのですから1件になります。 次レコードボタンとか付けたいのなら 別の方法でやるしかありません。 説明は掲示板では面倒なのでしません。 書籍でも参考にしてください。 あとわたしの勝手な言い分ですけど 質問のタイトルを変えるのはやめませんか? メーリングリストで見ていると関連性が 全くわからなくなるので。 #なんだかここの掲示板って仕組みがよくわかんない。 #Article番号も掲示板とメーリングリストで #まったく関連がないみたいだし。 |
何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり
参考 | 回数 | 投稿日時 | 何か一言 |
---|