ADODB.RecordSet.MoveNext увеличивается на 2 - PullRequest
0 голосов
/ 02 января 2019

Я импортирую файл CSV в ACCESS, используя набор записей ADODB.Я пытаюсь перебрать набор записей, чтобы получить нужные мне данные, но когда я использую метод .MoveNext, он увеличивается на 2 вместо одного.Под этим я подразумеваю, что AbsolutePosition рассчитывает на 2 с (1,3,5 ..), и я достигаю EOF, когда используемый мной счетчик строк достигает ровно половины от общего числа записей

Public Function ConnectToCSV(filePath As String, fileName As String)
Dim connString As String
Dim connection As ADODB.connection
Dim RS As New ADODB.recordSet
Dim currentRow As Long
dim readArray() as Variant

Set connection = New ADODB.connection
connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & filePath & fileName & _
  ";Extended Properties='text;HDR=YES;FMT=Delimited';"

connection.Open connString

RS.Open "SELECT * FROM " & fileName, connection, adOpenStatic, adLockReadOnly, adCmdText

currentRow = 0
RS.MoveLast
RS.MoveFirst

While Not RS.EOF
    readArray = RS.GetRows(1)
    RS.MoveNext
    currentRow = currentRow + 1
Wend
End Function

1 Ответ

0 голосов
/ 02 января 2019

Метод .GetRows (1), который я использовал, уже переходил к следующей записи после получения текущей записи.При использовании .MoveNext он также вызывал скачок на 2 в каждом цикле.

Я удалил .MoveNext, и он, кажется, работает правильно (прыжки на 1)

...