![Максимальное количество записей MS Access 2010](https://rvso.com/image/1438144/%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5%20%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B5%D0%B9%20MS%20Access%202010.png)
У меня есть программа VBA, написанная в Access 2010. Она создает и заполняет таблицу из текстового файла. Раньше было менее 20 000 записей. С текущим набором данных я получаю переполнение, когда он пытается добавить 32 769-ю (32 K +1) запись. Я пробовал остановить его после добавления 32 768-й записи, и он работает нормально (без ошибки переполнения). Как только я увеличиваю максимум до 32 769, я получаю ошибку переполнения. Существует ли максимальное количество записей, которые можно добавить с помощью VBA? Я использую стандартные вызовы DAO - CreateDatabase, OpenDatabase, OpenRecordset и т. д. Я копирую существующие таблицы из другой базы данных, чтобы создать таблицы. Затем цепочка .AddNew, xxx = yyy ... и .Update для добавления записей. Я использую 64-разрядную ОС Windows 7. Кто-то предложил использовать ADO вместо DAO, но я не смог понять, как это сделать. Кажется, первое, что нужно сделать, это импортировать или добавить ссылку на System.Data.OleDb.dll. Не смог найти это. Буду признателен за любую помощь. Возможно, мне придется переписать все это на C#.
Фил
решение1
Проблема, скорее всего, в том, что вы используете целое число для указания строки. Попробуйте использовать длинное число вместо этого. Это должно немного продвинуть вас, прежде чем он умрет.
решение2
Doubles не помогут, longs должны быть в порядке. Должно быть, где-то все еще используется Integer, если вы получаете переполнение на 32769. Внимательно проверьте свой код на наличие Integers, Variants и незатененных переменных. Убедитесь, что у вас есть Option Explicit в верхней части всех ваших модулей, так как может быть, что вы написали имя переменной не так, как там, где оно затенено, в этом случае это будет Integer Variant, а не Long, если вы начнете с небольших чисел.