У меня есть программа VBA, написанная в Access 2010. Он создает и заполняет таблицу из текстового файла. Ранее было всего менее 20 000 записей. При текущем наборе данных я получаю переполнение, когда он пытается добавить 32 769-ю (32 K +1) запись. Я попытался остановить его после добавления 32 768-й записи, и он работает нормально (без ошибки переполнения). Как только я увеличиваю максимум до 32 769, я получаю ошибку переполнения. Существует ли максимальное количество записей, которые можно добавить через VBA? Я использую стандартные вызовы DAO - CreateDatabase, OpenDatabase, OpenRecordset и т.д. Я копирую существующие таблицы из другой базы данных для создания таблиц. Затем .AddNew, xxx = yyy ... и.Обновите цепочку, чтобы добавить записи. Я использую 64-битную ОС Windows 7. Кто-то предложил использовать ADO вместо DAO, но я не смог понять, как это сделать. Кажется, первым делом нужно импортировать или добавить ссылку на систему.Данные.OleDb.dll. Не удалось найти это. Любая помощь будет оценена. Я могу в конечном итоге переписать все это на C #.

Фил

2 ответа2

1

Проблема, скорее всего, в том, что вы используете целое число для указания строки. Попробуйте использовать длинный вместо. Это должно сделать вас немного дальше, прежде чем он умрет.

0

Двойные пары не помогут, длинные должны быть в порядке. Все еще должно быть где-то, что использует Integer, если вы получаете переполнение в 32769. Тщательно проверяйте свой код на предмет целочисленных значений, вариантов и непроверенных вариантов. Убедитесь, что у вас есть Option Explicit в верхней части всех ваших модулей, потому что может случиться так, что вы написали имя переменной иначе, чем оно затемнено, в этом случае это будет Integer Variant, а не Long, если вы начинаете с малого номера.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .