• ベストアンサー

Accessにアクセスしデータを表示する際に

現在Accessで作成したデータベースにアクセスし、検索する簡単なプログラムを作成しています。 データベース先を指定し、接続詞 Do While()で検索し表示しています。 検索はComboBoxでいくつかの条件を選択させ、選択された条件をSQLに埋め込み検索し表示しています。 プログラムを起動し始めの検索は問題なくできます。だた、別な条件で検索しようとしても前の検索結果しか表示されません。 この場合、どの部分をみるべきなのでしょうか? また、SQLで検索した際、どのカラムにも一致しなかった場合エラーを表示させたいのですが、どうすればいいのでしょうか?

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

VBのバージョンや現在のSQLコードの組み立てなどをどのようにしているのか投稿してみましょう またデータベースから取得してくるのはどのような形態なのかも DAO、ADO、ADO.NETなど

その他の回答 (3)

  • t2hayashi
  • ベストアンサー率46% (102/219)
回答No.4

・検索条件が変わっていない→検索条件をリセットするコードを ・画面がリフレッシュされていない→フォームをリフレッシュしましょう エラーの出し方としてはカウントする方法か、レコードセットを呼び出しているなら.EOF をチェックするかですね。 例題的なコードはネット上に沢山あると思いますよ。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

この質問の書き方はひどい。どう質問者はコードを書いているか、明らかにせず、回答者がエラー原因を指摘しろなんてできるはずが無い。1字違えばアウトという、プログラムの恐ろしさを知らない人のやること。またエラー現象も込み入ったものでなく、初期的なエラーですから、すぐ質問となっているようで、自身の突込みが足りない。 WEBなどに関連記事が増えた現在、自分でもっとエラーの原因の箇所を絞る努力をして、絞って質問するべきだ。 参考 http://www.hyuki.com/writing/techask.html ーー また>どのカラムにも一致しなかった場合とはどういう意味か。 フィールド名のことか。 複数列検索をやっているのか。 ーー >SQLで検索した際、該当レコードが無かったときに・・、の意味なら http://www.accessclub.jp/bbs/0034/beginers14692.html のなかの >処理としては、抽出条件でフィルターを掛けたレコードセットを作って、 そのレコードセットのレコード数が0の場合はフィルターを解除して フォームに表示、1以上の場合はそのまま表示という処理になるかと思います。 それや http://okwave.jp/qa619151.html のANo2のCountを使う方法など。

noname#60992
noname#60992
回答No.2

レコードセットを作ってDo-loopで表示させているなら、 一旦レコードセットを閉じ、 SQLを作り直してレコードセットをつくり、 中身を表示させればよいと思います。 レコードセットの中身がカラの場合(最初からEOFの場合) エラーを表示させればよいと思います。

関連するQ&A