![Maximale Datensatzanzahl in MS Access 2010](https://rvso.com/image/1438144/Maximale%20Datensatzanzahl%20in%20MS%20Access%202010.png)
Ich habe ein VBA-Programm in Access 2010 geschrieben. Es erstellt und füllt eine Tabelle aus einer Textdatei. Bisher gab es insgesamt weniger als 20.000 Datensätze. Mit dem aktuellen Datensatz erhalte ich einen Überlauf, wenn versucht wird, den 32.769. (32 K +1) Datensatz hinzuzufügen. Ich habe versucht, es zu stoppen, nachdem der 32.768. Datensatz hinzugefügt wurde, und es funktionierte einwandfrei (ohne den Überlauffehler). Wenn ich das Maximum auf 32.769 erhöhe, erhalte ich den Überlauffehler. Gibt es eine maximale Anzahl von Datensätzen, die über VBA hinzugefügt werden können? Ich verwende die Standard-DAO-Aufrufe – CreateDatabase, OpenDatabase, OpenRecordset usw. Ich kopiere vorhandene Tabellen aus einer anderen Datenbank, um die Tabellen zu erstellen. Dann eine .AddNew-, xxx = yyy ...- und .Update-Kette, um die Datensätze hinzuzufügen. Ich verwende ein 64-Bit-Windows 7-Betriebssystem. Jemand hat vorgeschlagen, ADO statt DAO zu verwenden, aber ich habe nicht herausfinden können, wie das geht. Es scheint, dass das Erste darin besteht, System.Data.OleDb.dll zu importieren oder einen Verweis darauf hinzuzufügen. Ich konnte das nicht finden. Für jede Hilfe wäre ich dankbar. Vielleicht werde ich das Ganze am Ende in C# neu schreiben.
Phil
Antwort1
Das Problem liegt höchstwahrscheinlich darin, dass Sie zur Angabe der Zeile eine Ganzzahl verwenden. Versuchen Sie es stattdessen mit einer langen Zahl. Damit sollten Sie ein wenig weiterkommen, bevor es nicht mehr funktioniert.
Antwort2
Doubles helfen nicht, Longs sollten in Ordnung sein. Es muss immer noch irgendwo einen Integer geben, wenn Sie einen Überlauf bei 32769 erhalten. Überprüfen Sie Ihren Code sorgfältig auf Integer, Varianten und nicht abgeblendete Variables. Stellen Sie sicher, dass Sie Option Explicit auch oben in allen Ihren Modulen haben, denn es könnte sein, dass Sie einen Variablennamen anders geschrieben haben als dort, wo er abgeblendet ist. In diesem Fall wird es eine Integer-Variante und kein Long sein, wenn Sie mit kleinen Zahlen beginnen.