Hallo zusammen,
Vorweg, ich habe schon Online gesucht aber nicht zu einer Lösung gekommen :-)
Habe meine Datenbank geteilt in FE und BE, nun wollte ich die FE in accde speichern um Änderungen von andern zu unterbinden. Fehlermeldung ist:
Microsoft Office Access konnte keine ACCDE-, MDE- oder ADE-Datei erstellen.
Dieser Fehler tritt in der Regel im Zusammenhang mit der Kompilierung von einer großen Datenbank zu einer MDE-Datei auf. Aufgrund der Kompilierungsmethode dieser Datenbank wird eine beträchtliche Anzahl von TableID-Verweisen für jede Tabelle erstellt. Das Access-Datenbankmodul kann höchstens 2048 geöffnete TableID-Werte gleichzeitig erstellen. Beim Exportieren einer Datenbank als MDE kann diese Grenze überschritten werden, wenn die Datenbank viele Objekte (Tabellen, Makros, Formulare, Berichte usw.) enthält.
Es gibt keine präzise Methode, um die Anzahl der TableID-Werte zu schätzen, die das Access-Datenbankmodul während des Kompiliervorgangs einer Datenbank zu MDE verwendet. Jedes VBA-Modul und jedes Formular verwendet jedoch eine TableID, und deshalb werden, wenn die Datenbank 500 Formulare besitzt und die HasModule-Eigenschaft für jedes Formular auf Yes festgelegt ist, 1000 TableID-Werte verwendet.
Habe die DB regelmäßig Komprimiert und repariert durchgeführt. Keine sichtbaren Funktionsfehler. Die BD ist mit 20 Tabellen ( die ja so wie so in der BE sind), 36 Abfragen, 63 Formulare und 23 Berichten nicht zu groß, wie ich nachgelesen habe. Programm läuft auf MS Access 2016.
Kann mir einer helfen ?
Hallo,
ist das VBA-Projekt fehlerfrei kompilierbar?
Das wäre das erste was ich aufgrund des Fehlers untersuchen würde.
Ganz gewiss liegt es nicht an der (durchaus bescheidenen) Anzahl an Objekten in der DB.
Unter Umständen kannst du das Problem aber auch lösen, indem du alle Objekte in eine neue, leere DB importierst und mit dieser weiter arbeitest.
PS:
Welche Art von Änderungen an deiner DB willst du durch das *DE-Format verhindern?
Zitat36 Abfragen, 63 Formulare und 23 Berichten
Auf Grund der Fehlermeldung würde ich auf eine extensive Verwendung von DLookup & Co. sowie von nicht geschlossenen Recordsets tippen.
Hallo zusammen,
@ Maggie: Also ich habe keine Fehlermeldung beim Kompilieren. Ich möchte verhindern, dass die Anwender nicht in die Entwurfsansicht kommen bzw in den Navigationsbereich springen. ABER, so wie ich gesehen habe kann man Abfragen und Tabellen in der Accde ändern. Ist das richtig? wie kann ich das unterbinden?
@ Eberhard: hmmm, "Sowie von nicht geschlossenen Recordsets" kannst du da etwas näher drauf eingehen ?
Zitatkannst du da etwas näher drauf eingehen ?
Worauf genau?
Set rs = db.Openrecordset(sSQL)
...
rs.Close
Zu einem Öffnen gehört ein Schließen.
Ahh, Okay, das schau ich mir mal an. Danke.
Hallo Eberhard, habe zu allen "open" auch ein "Close".
Welche Möglichkeit habe ich um die Entwurfsansicht,Abfragen, usw für User zu sperren. Das Thema wurde bereit im Jan 2015 hier angesprochen aber zu einer richtigen Lösung ist nicht weiter eingegangen worden. Hast du das was für mich ?
Hallo,
Zitat von: Icemann1970 am Februar 22, 2017, 22:54:47
habe zu allen "open" auch ein "Close".
auch im Fehlerfall?!
ZitatWelche Möglichkeit habe ich um die Entwurfsansicht,Abfragen, usw für User zu sperren.
liefere eine ACCDR-Datei aus oder lasse die ACCDB über eine Verknüpfung mit dem /runtime-Parameter öffnen.
Via Autoexec-Makro kannst du prüfen, ob die DB als Runtime ausgeführt wird und sie ggfls. sofort wieder schließen.
Die Umgehung des Autoexec-Makros via Shift-Taste lässt sich ebenfalls verhindern.
Das ist kein Schutz gegen "Software-Piraten", mAn aber durchaus geeignet für den Einsatz innerhalb der Firma.
Hallo Maggie,
wie kann ich denn die ACCDR Datei erstellen? Wenn ich unter speichern unter/als gehe bekomme ich diese Auswahl nicht.
Zitat von: Icemann1970 am Februar 23, 2017, 22:19:14wie kann ich denn die ACCDR Datei erstellen?
Du änderst einfach die Dateiendung deiner .accdb zu .accdr. Dies signalisiert Access, dass es sich bei dieser Datei so verhalten soll, wie die Access Runtime.
Jetzt lacht bitte nicht.... Meine kompl. Office Anwendungen haben keine dateiendungen wie *.doc / *.xls / *.accdb usw. Keine Ahnung wo ich das einblenden lassen kann. Kiste läuft unter Windows 10 und Access 2016.
Hallo,
das kannst Du im Windowsexplorer (nicht Internetexplorer) unter Extras einstellen.
Das sollte man meiner Meinung nach grundsätzlich eingestellt haben.
Super, es funktioniert.
Vielen Dank für eure Hilfe.
Ihr seid einfach spitze, so macht das Arbeiten und das experimentieren spaß. Ich denke dieser "Schutz" müsste reichen damit die Kollegen nichts ändern können/aus versehen. Das man aus der accdr durch umbenennen wieder eine accdb machen kann wird bei meinen Kollegen keiner nachforschen.