O problema é mais do que provável que você esteja usando um inteiro para especificar a linha. Tente usar um longo em vez disso. Isso deve levá-lo um pouco mais antes que morra.
Eu tenho o programa VBA escrito no Access 2010. Ele cria e preenche uma tabela a partir de um arquivo de texto. Anteriormente, havia menos de 20.000 registros no total. Com o conjunto de dados atual, recebo um estouro quando ele tenta adicionar o registro 32,769th (32 K + 1). Eu tentei pará-lo depois que ele adiciona o registro 32,768th e funciona bem (sem o erro de estouro). Uma vez que eu aumente o máximo para 32.769, recebo o erro de estouro. Existe um número máximo de registros que podem ser adicionados via VBA? Eu estou usando as chamadas padrão DAO - CreateDatabase, OpenDatabase, OpenRecordset, etc. Eu estou copiando tabelas existentes de outro banco de dados para criar as tabelas. Em seguida, uma cadeia .AddNew, xxx = yyy ... e .Update para adicionar os registros. Estou usando um sistema operacional Windows 7 de 64 bits. Alguém sugeriu usar o ADO em vez do DAO, mas não consegui descobrir como fazer isso. Parece que a primeira coisa é importar ou adicionar uma referência ao System.Data.OleDb.dll. Não foi capaz de encontrar isso. Qualquer ajuda seria apreciada. Eu posso acabar re-escrevendo a coisa toda em C #.
Phil
O problema é mais do que provável que você esteja usando um inteiro para especificar a linha. Tente usar um longo em vez disso. Isso deve levá-lo um pouco mais antes que morra.
As duplas não ajudam os longos devem estar bem. Ainda deve haver algum lugar que esteja usando um Integer se você estiver recebendo um estouro de 32769. Verifique seu código cuidadosamente quanto a números inteiros, variantes e veri fi cações não-desimpedidas. Certifique-se de ter Option Explicit no topo de todos os seus módulos, porque pode ser que você tenha escrito um nome de variável de forma diferente para onde ele está esmaecido, caso em que será uma variante Integer não Long se você começar com pequenas números.
Tags vba microsoft-access-2010