|
▼neptune さん:
レスありがとうございます。
>>>For j = kiten2.Row + 1 To objsheet.Rows.Count
>ウォッチウィンドウか、ローカルウィンドウでその時のデータを確認しましょう。
>取り合えず、ここはかみちゃんさんのご指摘を試してみて下さい。
これは、データ見ました。65536がでました。
そして、かみちゃんさんのご指摘を試してみましたら、エラーは出ないまま65536回繰り返す状態になりました。
エクセルシートを使った時の
Range("A65536").End(xlUp).Row
はそのまま使えたのですが、これではまずいでしょうか?
>CSVファイルのデータを良く見ると、1つのファイルに複数のテーブル
>が含まれているようですので、上記の提案は不向きですね。ファイル内の
>データを解析したら、それをそのまんまmdbに放り込むほうが楽チンです。
今の状態がその楽チンな方法と考えてよいですか?
>知っているかどうか判らないので一応書いておきますが、CSVファイルも
>DAO、ADOを使用して、検索、追加は出来ます。
>削除は出来ない(ファイル操作では可能)。
>変更も多分出来ない。これは忘れました。これもファイル操作では可能です。
>CSVファイルは1行目がテーブル名になっていることが必要です。
ご教示ありがとうございます。
>その他気付いた点
>・DBへの追加処理は、別プロシージャにした方が見易い
>(好みだけの問題ではない。メンテナンス性。)
これは後で修正してみます。
>・RS.Open 後、RSを閉じないまま次のものに使っているが、問題は生じないんですかね?
RS.close をnext j の上に入れてみましたが、
RS.closeのところで「オブジェクトが閉じている時は操作は許可されません」というエラーがでましたので、RS.UPDATEの直後に毎回入れました。
RS.closeの入れ場所がまずいですか?
>・recordsetを開く際、openメソッドの第1引数でTable名を指定して、
> 第4引数でadCmdTableを指定すれば無駄なSQLを投げる必要は無かったと思う。
RS.Open InputTable, CN, adOpenKeyset, adLockOptimistic, adCmdTable
に変更し、上手く作動しました。
|
|