![MS Access 2010 の最大レコード数](https://rvso.com/image/1438144/MS%20Access%202010%20%E3%81%AE%E6%9C%80%E5%A4%A7%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E6%95%B0.png)
Access 2010 で作成された VBA プログラムがあります。テキスト ファイルからテーブルを作成して入力します。以前は、合計 20,000 件未満のレコードがありました。現在のデータ セットでは、32,769 番目 (32 K +1) のレコードを追加しようとするとオーバーフローが発生します。32,768 番目のレコードを追加した後に停止しようとしましたが、正常に動作します (オーバーフロー エラーなし)。最大値を 32,769 に増やすと、オーバーフロー エラーが発生します。VBA で追加できるレコードの最大数はありますか? 標準の DAO 呼び出し (CreateDatabase、OpenDatabase、OpenRecordset など) を使用しています。別のデータベースから既存のテーブルをコピーしてテーブルを作成しています。次に、.AddNew、xxx = yyy ...、および .Update チェーンを使用してレコードを追加します。Windows 7 64 ビット OS を使用しています。 DAO の代わりに ADO を使用するよう提案する人がいましたが、その方法がわかりません。まず、System.Data.OleDb.dll への参照をインポートまたは追加する必要があるようです。それを見つけることができませんでした。どなたか助けていただければ幸いです。結局、全体を C# で書き直すことになるかもしれません。
フィル
答え1
問題は、行を指定するために整数を使用していることにある可能性が高いです。代わりに long を使用してみてください。これにより、エラーが発生する前にもう少し先に進むことができます。
答え2
Double は役に立ちませんが、Long は問題ありません。32769 でオーバーフローが発生する場合は、どこかで Integer を使用しているはずです。Integer、Variants、淡色表示されていない変数についてコードを注意深く確認してください。すべてのモジュールの先頭に Option Explicit があることを確認してください。淡色表示されている場所と異なる方法で変数名を入力した可能性があるためです。その場合、小さい数値から始めると Long ではなく Integer Variant になります。