アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在Accessで作成したデータベースにアクセスし、検索する簡単なプログラムを作成しています。

データベース先を指定し、接続詞 Do While()で検索し表示しています。 検索はComboBoxでいくつかの条件を選択させ、選択された条件をSQLに埋め込み検索し表示しています。

プログラムを起動し始めの検索は問題なくできます。だた、別な条件で検索しようとしても前の検索結果しか表示されません。

この場合、どの部分をみるべきなのでしょうか?

また、SQLで検索した際、どのカラムにも一致しなかった場合エラーを表示させたいのですが、どうすればいいのでしょうか?

A 回答 (4件)

VBのバージョンや現在のSQLコードの組み立てなどをどのようにしているのか投稿してみましょう



またデータベースから取得してくるのはどのような形態なのかも
DAO、ADO、ADO.NETなど
    • good
    • 0

・検索条件が変わっていない→検索条件をリセットするコードを



・画面がリフレッシュされていない→フォームをリフレッシュしましょう

エラーの出し方としてはカウントする方法か、レコードセットを呼び出しているなら.EOF をチェックするかですね。

例題的なコードはネット上に沢山あると思いますよ。
    • good
    • 0

この質問の書き方はひどい。

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

レコードセットを作ってDo-loopで表示させているなら、



一旦レコードセットを閉じ、
SQLを作り直してレコードセットをつくり、
中身を表示させればよいと思います。

レコードセットの中身がカラの場合(最初からEOFの場合)
エラーを表示させればよいと思います。
    • good
    • 0

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