![MS Access 2010 최대 레코드 수](https://rvso.com/image/1438144/MS%20Access%202010%20%EC%B5%9C%EB%8C%80%20%EB%A0%88%EC%BD%94%EB%93%9C%20%EC%88%98.png)
Access 2010으로 작성된 VBA 프로그램이 있습니다. 텍스트 파일에서 테이블을 만들고 채웁니다. 이전에는 총 레코드 수가 20,000개 미만이었습니다. 현재 데이터 세트에서 32,769번째(32K +1) 레코드를 추가하려고 하면 오버플로가 발생합니다. 32,768번째 레코드를 추가한 후 중지하려고 시도했는데 제대로 작동합니다(오버플로 오류 없이). 최대값을 32,769로 늘리면 오버플로 오류가 발생합니다. VBA를 통해 추가할 수 있는 최대 레코드 수가 있습니까? 저는 표준 DAO 호출(CreateDatabase, OpenDatabase, OpenRecordset 등)을 사용하고 있습니다. 테이블을 생성하기 위해 다른 DB의 기존 테이블을 복사하고 있습니다. 그런 다음 .AddNew, xxx = yyy ... 및 .Update 체인을 사용하여 레코드를 추가합니다. 저는 Windows 7 64비트 OS를 사용하고 있습니다. 누군가 DAO 대신 ADO를 사용하자고 제안했지만 어떻게 해야 할지 모르겠습니다. 가장 먼저 해야 할 일은 System.Data.OleDb.dll에 대한 참조를 가져오거나 추가하는 것입니다. 그것을 찾지 못했습니다. 어떤 도움이라도 주시면 감사하겠습니다. 결국 C#으로 모든 것을 다시 작성하게 될 수도 있습니다.
필
답변1
문제는 행을 지정하기 위해 정수를 사용하고 있을 가능성이 높습니다. 대신에 long을 사용해 보세요. 죽기 전에 조금 더 나아갈 수 있을 것입니다.
답변2
복식은 오랫동안 도움이 되지 않습니다. 32769에서 오버플로가 발생하는 경우 여전히 정수를 사용하고 있는 어딘가가 있어야 합니다. 코드에서 정수, 변형 및 흐리게 표시되지 않은 검증 가능 항목이 있는지 주의 깊게 확인하세요. 모든 모듈 상단에 Option Explicit가 있는지 확인하세요. 변수 이름의 철자가 흐리게 표시된 위치와 다르게 표시될 수 있기 때문입니다. 이 경우 작게 시작하면 Long이 아닌 Integer Variant가 됩니다. 숫자.