ADOでExcel接続時、Excelの全体を読込むには?


 2004-02-27 14:50:54  No: 112099  IP: [192.*.*.*]

VB6.0SP5 ADO2.8 Windows2000
ADOを使用しExcelファイルの編集を行っているのですが、
全ての行を取得してくれません。どうしてなのでしょうか?

下記のコードで読込むと41件しかRecordCountで表示されないのですが、
実際は90件強あります。

dim CN as adodob.connection
dim RS as adodob.connection

Set CN = New ADODB.Connection
CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Fname & ";" & _
"Extended Properties=Excel 8.0;Persist Security Info=False"
CN.Open

SQL = "SELECT * FROM [" & SheetName & "] "
    
Set RS = New ADODB.Recordset
RS.CursorLocation = adUseClient
RS.Open SQL, CN1, adOpenKeyset, adLockBatchOptimistic, adCmdText

debug.print rs.recordcount

編集 削除
岡田 之仁  2004-02-28 17:51:09  No: 112100  IP: [192.*.*.*]

因みに・・・その90件のデータ中には、1行も
無効なデータや行(空行を含む)はありませんか?

空行があれば、その直前までしか読み込まれません。

そういう意味では、41件とありますので、42行目
のデータは正しく入っていますか?

以上。

編集 削除
 2004-03-03 16:59:52  No: 112101  IP: [192.*.*.*]

自分も怪しいと思い、テスト用を作成しにExcelファイルの
順番入れ替えなどをしてみたのですが、
そのファイルでは、やはり41件までしか読みこんでもらえません。
EXCELファイル自体の設定を探ってみたのですが、
41行目、もしくは42行目までの指定の設定は見つかりませんでした。
シートの中身を別ファイルにコピーして、
違うファイルで読込んでもダメでした(=;ェ;=)

編集 削除
特攻隊長まるるう  2004-03-03 17:18:21  No: 112102  IP: [192.*.*.*]

ちなみに…その時の rs.Fields.Count は256?

編集 削除
 2004-03-04 09:27:10  No: 112103  IP: [192.*.*.*]

256ではありません。
Fields.Countはあっています。

編集 削除
GOD  2004-03-04 09:29:33  No: 112104  IP: [192.*.*.*]

Debug.Printの前にRS.MoveLastとかやっても同じですかね?

編集 削除
岡田 之仁  2004-03-04 10:12:43  No: 112105  IP: [192.*.*.*]

下記URLのページの後半・・・参考になりませんか?

http://support.microsoft.com/default.aspx?scid=kb;ja;257819

以上。

編集 削除