Wie groß kann eine Access-Datenbank den werden?

Hallo,
wir haben bei uns eine Anwendung in Access/VBA übernommen welche derzeit schon ca. 30 MB hat. Die Daten liegen aber nicht in Access sondern extern auf einem MS SQL-Server, d.h. 30MB VBA-Code !!!.
So nun meine Frage wie groß kann so ein Projekt eigentlich werden?
Gibt es da überhaupt eine Grenze? Ich sollte noch dazusagen, daß diesen Projekt erst zu ca. 50% fertig ist !! also die 50 - 60 MB dürften kein Problem sein.

Danke für eure Hilfe !
Christian

Die Grenze liegt bei 1 GB je Datenbank - eine Access-Applikation kann ja aber aus mehreren Datenbanken bestehen…

50 MB ist eine eher kleine Access-Datenbank. (Zumal wenn sie nicht in Frontend/Backend getrennt ist, was man auf jeden Fall machen sollte! Siehe unter „Assistent zur Datenbankaufteilung“ oder auch „Datenbank aufteilen“ in der Hilfe!)

Reinhard

Die Daten liegen aber
nicht in Access sondern extern auf einem MS SQL-Server, d.h.
30MB VBA-Code !!!.

Hmmm… Ich glaube nicht so recht da dran. In der c’t behauptet Linus Torvalds, daß der gesamte Quellcode zu Linux etwa 60MB ausmacht. Bist Du sicher, daß Du da keine Daten drin hast?

Gruß

J.

Hmmm… Ich glaube nicht so recht da dran. In der c’t
behauptet Linus Torvalds, daß der gesamte Quellcode zu Linux
etwa 60MB ausmacht. Bist Du sicher, daß Du da keine Daten drin

Linux liegt auch in einer „Programmiersprache“ vor !!!
Und warum ich das hier frage ist das ich den Kunden überzeugen möchte es auf eine Vernünftige Basis zu Bringen !!.
Außerdem die 60MB sind rein das Betriebssystem, keine GUI oä…

Christian

Komprimiert hast Du die Db schon?
Ich arbeite an einer größeren Access-VBA Applikation, während den Änderungen am Code wächst die DB bis ca. 10 MB nach dem Komprimieren ist sie ‚brav‘ wieder auf 1-2 MB. (Daten ebenso extern)
Maria

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Komprimiert hast Du die Db schon?
Ich arbeite an einer größeren Access-VBA Applikation, während
den Änderungen am Code wächst die DB bis ca. 10 MB nach dem
Komprimieren ist sie ‚brav‘ wieder auf 1-2 MB. (Daten ebenso
extern)
Maria

Ja Komprimiert hab ich schon.
Meine Erfahrung ist die das nach einem „Langen Arbeitstag“ teilweise die 150MB kein Problem darstellen !!! ???

Christian

Hallo,

hilft es Dir, wenn ich Dir die Spezifikation des SQL-Servers v7.0 beifüge?

Hier ist sie:

Spezifikation der maximalen Kapazität
In der folgenden Tabelle werden die Höchstwerte für Größe und Anzahl unterschiedlicher Objekte aufgeführt, die in Microsoft® SQL Server™-Datenbanken definiert werden oder auf die in Transact-SQL-Anweisungen verwiesen wird.

Maximale Größe/Anzahl
Objekt SQL Server 6.5 SQL Server 7.0
Stapelgröße 128 KB 65.536 * Netzwerkpaketgröße
Byte pro Spalte mit kurzen Zeichenfolgen 255 8000
Byte pro Spalte des Datentyps text, ntext oder image 2 GB-2 2 GB-2
Byte pro GROUP BY, ORDER BY 900 8060
Byte pro Index 900 900
Byte pro Fremdschlüssel 900 900
Byte pro Primärschlüssel 900 900
Byte pro Zeile 1962 8060
Byte im Quelltext einer gespeicherten Prozedur 65025 Stapelgröße oder 250 MB, je nachdem, welcher Wert niedriger ist
Gruppierte Indizes pro Tabelle 1 1
Spalten in GROUP BY, ORDER BY 16 Begrenzung nur durch die Anzahl an Byte
Spalten oder Ausdrücke in einer GROUP BY WITH CUBE- oder WITH ROLLUP-Anweisung 10 10
Spalten pro Index 16 16
Spalten pro Fremdschlüssel 16 16
Spalten pro Primärschlüssel 16 16
Spalten pro Basistabelle 250 1024
Spalten pro SELECT-Anweisung 4096 4096
Spalten pro INSERT-Anweisung 250 1024
Verbindungen pro Client Höchstwert konfigurierter Verbindungen Höchstwert konfigurierter Verbindungen
Datenbankgröße 1 TB 1.048.516 TB
Datenbanken pro Server 32.767 32.767
Dateigruppen pro Datenbank N/V 256
Dateien pro Datenbank 32 32.767
Dateigröße (Daten) 32 GB 32 TB
Dateigröße (Protokoll) 32 GB 4 TB
Verweise auf Fremdschlüsseltabellen pro Tabelle 16 253
Bezeichnerlänge (in Zeichen) 30 128
Sperren pro Verbindung Maximal zulässige Sperren pro Server Maximal zulässige Sperren pro Server
Sperren pro Server 2.147.483.647 2.147.483.647 (statisch)
40 % des SQL Server-Speichers (dynamisch)
Schachtelungsebenen gespeicherter Prozeduren 16 32
Geschachtelte Unterabfragen 16 32
Schachtelungsebenen für Trigger 16 32
Nicht gruppierte Indizes pro Tabelle 249 249
Gleichzeitig geöffnete Objekte auf einem Server * 2 Milliarden 2.147.483.647
Objekte in einer Datenbank * 2 Milliarden 2.147.483.647
Parameter pro gespeicherter Prozedur 255 1024
REFERENCES pro Tabelle 31 63
Zeilen pro Tabelle Begrenzung durch verfügbaren Speicherplatz Begrenzung durch verfügbaren Speicherplatz
SQL-Zeichenfolgenlänge (Stapelgröße) 128 KB 128 * TDS-Paketgröße
Tabellen pro Datenbank 2 Milliarden Begrenzung durch die Anzahl der Objekte in einer Datenbank
Tabellen pro SELECT-Anweisung 16 256
Trigger pro Tabelle 3 Begrenzung durch die Anzahl der Objekte in einer Datenbank
UNIQUE-Indizes oder ­Einschränkungen pro Tabelle 249 249 nicht gruppierte und 1 gruppierter
* Datenbankobjekte umfassen alle Tabellen, Sichten, gespeicherten Prozeduren, erweiterten gespeicherten Prozeduren, Trigger, Regeln, Standards und Einschränkungen. Die Summe dieser Objekte in einer Datenbank kann 2.147.483.647 nicht übersteigen.

© 1988-98 Microsoft Corporation. Alle Rechte vorbehalten. Spezifikation der maximalen Kapazität

Danke, aber es geht hier um die Access-Datenbank !!! beim SQL-Server mache ich mir keine Sorgen.
Es geht einzig und alleine darum, ob der bestehende VBA - Code auf eine andere Basis gebracht werden soll, da evtl. Access unstabil wird.

Hilfe ich will nicht VBA - Programmierer werden.

Hallo Christian,

die Grenze einer Access-Datenbank (also der Datei *.mdb auf der Festplatte) ist laut Microsoft 1GB - aber da sollte man sich lieber NICHT heranwagen…

regelmäßige Komprimierung ist natürlich Pflicht, auch das neu Anlegen der Datenbank (mit Import aller Elemente) bietet sich an.

GANZ WICHTIG ist es aber, unnötigen Datenmüll zu vermeiden!
Dazu zähle ich vor allen zig Sicherheitskopien von Abfragen, Formularen, Berichten usw. und unnötige Bilder (die locker ein paar MB pro Formular bringen)!

Kurt
http://www.fortwaengler.de

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]