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

エクセル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」が複数あります。
これを数えるにはどうすればいいのでしょうか?

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

A 回答 (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

と、なります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/10/09 13:55

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



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切断
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/10/09 12:08

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