プロが教える店舗&オフィスのセキュリティ対策術

Access2010を使用しています。

住所録を作成しています。

Aテーブル(世帯)
世帯ID、世帯主、

Bテーブル(住所)
世帯ID、住所ID、郵便番号、住所

Cテーブル(個人)
世帯ID、住所ID、個人ID、個人名

とわかれていて、IDで管理しています。

名前や住所から登録してあるデータを探すのに
個人データのクエリを作りました。
Dクエリ
世帯ID、住所ID、個人ID、 個人名、 郵便番号、住所


検索するときにこのDクエリをもとにSQL文を作りました。

検索画面でクエリから検索し、一覧画面で検索結果に合うデータの一覧を作成しているのですが、
検索結果がフォームに表示されません。

検索画面で作られているSQLを実行した場合は正しいデータの一覧が作成できます。

一覧のフォームでフォームのプロパティにあるデータのレコードソースにはDクエリのクエリ名が入っています。
フォームの詳細にはテキストボックスを置いて、そのテキストボックスのレコードソースには表示したいデータのフィールド名を選択しました。

ACCESS自体は初心者のため、どこがまちがっているのかがわかりません。
データを表示させるにはどうしたらよいのかわかる方がおりましたら教えてください。

検索画面での処理です。

mySQL = "SELECT * FROM <Dクエリ> Where "
myRecordsorce = "SELECT * FROM <Dクエリ> Where " & "検索条件(例:'*佐藤*')"
DoCmd.OpenForm <一覧画面名>, , myRecordsorce


一覧画面のオープン時には特に何もしていません。


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

質問者からの補足コメント

  • うーん・・・

    回答で頂きましたWhereConditionを指定して検索→一覧画面をオープンしたら、プロパティのフィルターのところに検索条件が表示されていました。
    また、いろいろ探しているところで、一覧のフォームをデータシートビューで表示してみたら、検索結果のデータが表示されました。

    なぜフォームの詳細のところに表示されないのかがまだわかりません。

    確認した方がよいところがありましたら教えて下さい。
    どうぞ宜しくお願い致します。

      補足日時:2015/07/16 12:10

A 回答 (1件)

まずはヘルプの例などで、書き方を参考にしましょう。


DoCmd.OpenForm メソッド (Access)
https://msdn.microsoft.com/ja-jp/library/office/ …

レコードソースが全件出力するクエリなら
Filteoname ではなく、WhereCondition で 指定するのが普通かと。

strWhere = "個人名 Like '*" & Me.テキストボックス & "*'"
DoCmd.OpenForm <一覧画面名>, , , strWhere

のような感じで。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
WhereConditionで指定してみましたが、結果は変わりませんでした。

その際気づいたことがありますので、補足の説明に書かせて頂きます。
もし、なにかお気づきのことがあれば再度ご教授頂けますととてもうれしいです。

お礼日時:2015/07/16 12:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!