Исходя из вашего примера, похоже, что updatesettings.dbf - это просто файл, содержащий инкрементный счетчик. На самом деле значение счетчика может быть больше, чем MAXINT, что также может привести к этой ошибке. Если это правда, попробуйте изменить строку 10 из этого:
cc = CInt(setting.ReadLine)
На это:
On Error Resume Next
Err.Clear
cc = CInt(setting.ReadLine)
If (0 <> Err.Number) Then cc = -1
On Error Goto 0
Это должно эффективно обработать ошибку и привести переменную cc в предварительно инициализированное состояние , который увеличивается позже (строка 23) до исходного состояния инициализации, равного нулю (0), и сохраняется в файле updatesettings.dbf. Значение: Это должно выполнить sh то же самое, что и блок инициализации 'Else' после строки 27, когда файл updatesettings.dbf не существует.
Надеюсь, это поможет.