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

解決済みの質問

ADOでテーブルのフィールド「A」の「0000」の数を数えたい。

エクセルVBAからアクセスへ

Set con = New ADOdb.Connection
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ACCESSファイル名

Set Rs = New ADOdb.Recordset
Rs.Open テーブル名, con, adOpenKeyset, adLockOptimistic

Debug.Print Rs.RecordCount

Set Rs = Nothing
Set con = Nothing

とエクセルVBAにコードを記述していますが思いどおりにいきません。

Debug.Print Rs.RecordCount
しかわからなく
これだとレコードの数しか数えられませんでした。

テーブルのフィールド「A」には「0000」が複数あります。
これを数えるにはどうすればいいのでしょうか?

もっといいやり方があれば教えてくださいませ。
よろしくお願いします。

投稿日時 - 2008-10-07 13:40:31

QNo.4383896

暇なときに回答ください

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

惜しいです、もうひとひねり。

Rs.Open テーブル名, con, adOpenKeyset, adLockOptimistic

の、テーブル名のところを
Rs.Open "SELECT * FROM テーブル名 WHERE A='0000'", con, adOpenKeyset, adLockOptimistic

と、変えてあげれば、RecordCountでレコード数が取得できます。
""の中は、「テーブル名のA項目が'0000'のものを抽出する」という意味のSQL文です。

参考までに・・・↓
------------------------------------------------------------
A1さんのCOUNT関数を使ったSQLを使うとこうなります。
Set con = New ADOdb.Connection
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ACCESSファイル名

Set Rs = New ADOdb.Recordset
Rs.Open "SELECT COUNT(*) AS CNT FROM テーブル名 WHERE フィールドA = '0000'", con, adOpenKeyset, adLockOptimistic

Debug.Print Rs!CNT ←これが件数!

Set Rs = Nothing
Set con = Nothing

と、なります。

投稿日時 - 2008-10-07 19:30:48

お礼

大変参考になりました。ご回答ありがとうございます。

投稿日時 - 2008-10-09 13:55:39

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

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

回答(2)

ANo.1

以下を参考にしてください。

http://dell-support.okwave.jp/qa4357176.html

  Dim Sql     As String
  Dim wCnt    As Integer
  '
  Call Db接続
  '
  Sql = "SELECT COUNT(*) AS CNT FROM テーブル名 WHERE フィールドA = '0000'"
  Set ADRS = ADCN.Execute(Sql)
  wCnt = ADRS.Fields("CNT")    '←件数
  ADRS.Close
  '
  Call Db切断

投稿日時 - 2008-10-07 14:00:28

お礼

大変参考になりました。ご回答ありがとうございます。

投稿日時 - 2008-10-09 12:08:37

あなたにオススメの質問