• ベストアンサー

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」が複数あります。 これを数えるにはどうすればいいのでしょうか? もっといいやり方があれば教えてくださいませ。 よろしくお願いします。

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

  • ベストアンサー
  • tazukadan
  • ベストアンサー率68% (15/22)
回答No.2

惜しいです、もうひとひねり。 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 と、なります。

sdfdfadgh
質問者

お礼

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

その他の回答 (1)

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.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切断

sdfdfadgh
質問者

お礼

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

関連するQ&A

専門家に質問してみよう