RecordCount値がデータ取得数と異なる

解決


y=mx  2005-11-17 06:43:54  No: 127799

VB6.0(DAO)でExcelからデータを取得するプログラムを書いていたのですが、
正常にデータ取得が出来ているのに RecordCount値が「1」になってしまうのは
どうしてでしょうか?

sSQL = "SELECT DATA1, DATA2 FROM [A$]"

On Error GoTo errExcept
    Set db = DBEngine.Workspaces(0).OpenDataBase(sFile, False, False, "Excel 8.0;HDR=YES;")
    Set rs = db.OpenRecordset(sSQL)
    
    MsgBox rs.RecordCount '<--- 「1」?!
    Do Until rs.EOF
        sString = sString & _
                  rs.Fields(0).Value & " " & _
                  rs.Fields(1).Value & vbCrLf
        rs.MoveNext
    Loop
    MsgBox sString   '<--- 3レコード表示されている

    Exit Sub

errExcept:
    MsgBox (Err.Number & " " & Err.Description)

End Sub

アドバイスお願いします。


y=mx  2005-11-17 06:58:01  No: 127800

すいません、RecordCount()にしてなかったのが原因だったみたいです。
(カッコ忘れ)


y=mx  2005-11-17 07:06:36  No: 127801

すいません!解決してなかったです。なんで?!


魔界の仮面弁士  2005-11-17 07:57:18  No: 127802

> 「1」になってしまうのはどうしてでしょうか?
ダイナセットタイプだからでしょう。
ループ中に値が変化していたりはしませんか?

> 解決してなかったです。
さしあたり、下記の Vol.3 を読んでみるとか。
http://www.canalian.com/DenRe/


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加