Использование RecordsActed-метода в VBA вызывает ошибку, когда число превышает приблизительно 90 000 записей? - PullRequest
0 голосов
/ 01 марта 2011

Я выполняю запрос на добавление в VBA (внутри MS Access), который выглядит как приведенный ниже код.Когда я использую метод RecordsActed в VBA для отслеживания того, сколько записей было вставлено, возникает ошибка, когда число превышает приблизительно 90 000 записей и выше?(что-то вроде ошибки переполнения стека)

Самое смешное, что когда я не использую метод RecordsActed, запрос работает просто отлично.И это также прекрасно работает, когда количество затронутых строк меньше 90.000.

Что может быть не так?Это ошибка в VBA?
.
.

Dim dbs As DAO.Database  
sql As String  
iCount As Integer  
Set dbs = CurrentDb  

sql = "INSERT INTO " & ReceiveTable_selected & " SELECT " & NavisionTable_selected & ".* " & _
                   "FROM " & NavisionTable_selected & " " & _
                   "WHERE ((([" & NavisionTable_selected & "].[Entry No_]  ) >" &   
                    Counter_selected & "))"


dbs.Execute sql, dbFailOnError
iCount = dbs.RecordsAffected

1 Ответ

3 голосов
/ 01 марта 2011

Измените Dim iCount As Integer на Dim iCount As Long

Из файла справки:

Целочисленные переменные хранятся в виде 16-битных (2-байтовых) чисел в диапазоне значений от -От 32 768 до 32 767.

и:

Длинные (длинные целые) переменные хранятся в виде 32-разрядных (4-байтовых) чисел со знаком в диапазоне значений от -2 147 483 648 до2 147 483 647

1015 *
...