こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

AccessSQL COUNT文で該当レコード抽出したい

初心者です。

Access2000であるテーブルの条件に一致した
レコード件数を抽出するSQLを作成しました。
条件に該当しない場合も1件で件数が戻ってきてしまいます。
AccessクエリでSQLを貼り付けて
検証した場合はちゃんと0件になるのですが
VBAのコードではうまく件数が抽出されません。

簡単なことだったらごめんなさい。
いろいろなサイトで探した末、
どうしても解決できないので
ご教授よろしくお願いします。

Dim strSQL As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
 Dim IntCount As integer

'SQL文を生成
strSQL = "SELECT COUNT(*) AS 件数 FROM テーブル名 "
strSQL = strSQL & "WHERE テーブル名.コード = '"
strSQL = strSQL & Forms![フォーム名]![txtコード]
strSQL = strSQL & "' AND Left([テーブル名]![区分],1) = '"
strSQL = strSQL & Forms![フォーム名]![cnb種類].Column(0)
strSQL = strSQL & "' AND テーブル名.名称 = '"
strSQL = strSQL & Forms![フォーム名]![txt名称]
strSQL = strSQL & "';"

Set db = CurrentDb

Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)

IntCount =  rs.RecordCount

rs.Close

Set db = Nothing
Set rs = Nothing

投稿日時 - 2008-05-26 21:50:09

QNo.4052829

困ってます

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

RecordCountで取得しているのが間違いでしょう
これは 返される行数が何行あるかを表すプロパティですから該当しなくても1(行)となります

何件ヒットしたかは rs(0).Value を参照しないといけないかと思います

複数ヒットするような条件を与えて RecordCountとrs(0).Valueの違いを検証してみてください

投稿日時 - 2008-05-26 23:47:47

お礼

>複数ヒットするような条件を与えて RecordCountとrs(0).Valueの違いを検証してみてください

検証してみたらおっしゃる通りで、うまく件数も抽出できました。
わかりやすくご説明していただいたおかげで
理解が深まりました。
この点を踏まえて詳細を学習してみます。

独学でACCESSを勉強中ですので
また機会がありましたら是非よろしくお願いします。

投稿日時 - 2008-05-28 14:52:56

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問