Excel ado処理について
現在、Excel(インターフェース用)⇔(社内LAN経由)⇔Excel(マスターファイル×4)間で
ADOを使用して、データ処理を行おうとしております。
(なお、今までは、画面更新OFFにしてファイルを素直にOPENして
各ファイルデータを格納して処理を行っていたのですが、
業務人員&量の拡大に伴い、Excelの競合が激しくなり、ADOによる処理へと
対応変更を考えております)
マスターファイル×4はAccessのように、主キーが振ってあり、連結しております。
インターフェース用のExcelから各マスターファイルをADOで読み込み、
インターフェース用のExcelへとデータを転記する処理を作成中ですが、
なぜか、マスターファイル(A・B・C・D)のうち、Cのファイルのみ、データを10件ほど認識しておらず、
A=B=D≠Cとなってしまいます。
マスターファイルを直接開いて確認しますが、データ数は間違いなく一致しておりますが、
VBA上では認識しておりません。
自分なりに解析したところ、Cのファイルだけ、
"RS.MoveNext"の部分でデータが10件ほど飛んでいると思っております。
以下がそのソースですが、
どこが問題なのか?または、考えうる原因が他にあれば、ご教授いただきたいです。
本当に困っています。宜しくお願い致します。
---------------------------------------------------------------------
Sub StorageData()
'Frag初期値
SW_OK = True
On Error GoTo ErrADO
'取引先詳細
'ADO定型分
Set CN = New ADODB.Connection
CN.Provider = "Microsoft.Jet.OLEDB.4.0"
CN.Properties("Extended Properties") = "Excel 8.0"
CN.Open Path00 & "反響データ\" & FileName01
Set RS = New ADODB.Recordset
RS.Open SQL, CN, adOpenStatic, adLockReadOnly
ReDim Data00(RS.RecordCount, 20)
Ctr = 1
Do
For i = 0 To 20
If Not RS.BOF Then
Data00(Ctr, i) = RS.Fields(i)
End If
Next i
i = 0
RS.MoveNext
Ctr = Ctr + 1
Loop Until RS.EOF
Ctr = Ctr - 1
' ReDim Preserve Data00(Ctr, 20)
Ctr = 0
Set RS = Nothing
CN.Close
'お客さま詳細
'ADO定型分
Set CN = New ADODB.Connection
CN.Provider = "Microsoft.Jet.OLEDB.4.0"
CN.Properties("Extended Properties") = "Excel 8.0"
CN.Open Path00 & "反響データ\" & FileNam
お礼
ご回答ありがとうございます。