Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Access kann Release nicht ändern

Begonnen von joschi50, September 09, 2024, 17:23:13

⏪ vorheriges - nächstes ⏩

joschi50

Ich habe ein Problem mit einer Anwendung die auf anderen Rechnern laufen soll.
Es handelt sich um eine ganz normale accdb.
Wenn die Anwendung gestartet wird kommt die Fehlermeldung: Anwendungxyz kann den Entwurf von Release nicht ändern. Zum Ändern des Entwurfes ist mindestens Version 14 erforderlich.

Auf einem der Rechner ist bereits Access 2007 installiert und die Anwendung wurde ohne Runtime installiert.
Auf dem anderen Rechner war kein Office vorhanden deswegen wurde die Anwendung mit der 2007er Runtime installiert.

Auf meinem eigenen Rechner funktioniert alles tadellos, nicht jedoch auf den fremden Rechnern.

Weiß jemand woher diese Fehlermeldung kommt ?

Ich arbeite mit MS Access 2016, 32 bit
Auch Wolkenkratzer haben mal als Keller angefangen.

PhilS

Zitat von: joschi50 am September 09, 2024, 17:23:13Wenn die Anwendung gestartet wird kommt die Fehlermeldung: Anwendungxyz kann den Entwurf von Release nicht ändern. Zum Ändern des Entwurfes ist mindestens Version 14 erforderlich.


Auf einem der Rechner ist bereits Access 2007 installiert und die Anwendung wurde ohne Runtime installiert.
Auf dem anderen Rechner war kein Office vorhanden deswegen wurde die Anwendung mit der 2007er Runtime installiert.

Auf meinem eigenen Rechner funktioniert alles tadellos, nicht jedoch auf den fremden Rechnern.
[...]
Ich arbeite mit MS Access 2016, 32 bit
Ich kann mich nicht erinnern, diese Fehlermeldung schon mal gesehen zu haben. - Version 14 ist Access 2010.

Generell ist es empfehlenswert eine Anwendung mit der niedrigsten Version von Access zu testen und im Falle einer ACCDE diese auch mit dieser niedrigsten Version zu erstellen.

"eine ganz normale accdb" gibt es in dieser Form eigentlich nicht. Am ACCDB-Format hat sich im Laufe der Zeit, abhängig von den verwendeten Features, mehrfach etwas geändert. Eine mit A2016 erstellte ACCDB ist nicht unbedingt kompatibel zu A2007.
Wenn deine Benutzer A2007 verwenden, solltest du unbedingt auch ein Testssystem mit A2007 haben.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

joschi50

Hallo Phil,
das ist mir schon klar.
Ich habe dem Kunden jetzt empfohlen die Runtime 2016 herunterzuladen.
Ich habe hier einen Rechner mit Access 2007 auf dem die Anwendung läuft. Sie wurde ja mit 2007 entwickelt, bin aber vor einem Jahr auf 2016 gewechselt. Spezifische 2016 Elemente wurden bei Änderungen nicht verwendet.
Eine Accde habe ich nicht erstellt.


Grüße
Jochen
Auch Wolkenkratzer haben mal als Keller angefangen.

PhilS

Zitat von: joschi50 am September 09, 2024, 19:11:53Ich habe hier einen Rechner mit Access 2007 auf dem die Anwendung läuft. Sie wurde ja mit 2007 entwickelt, bin aber vor einem Jahr auf 2016 gewechselt. Spezifische 2016 Elemente wurden bei Änderungen nicht verwendet.
Ich finde die Fehlermeldung weiterhin höchst seltsam.

Ich kenne ein Problem mit Access, dass direkt beim öffnen einer DB-Datei eines der Formulare automatisch im Entwurf geöffnet wird. Dies hat nichts mit dem konfiguriertem Start-Formular zu tun, sondern es ist ein zufälliges Formular, aber immer dasselbe, dass immer so geöffnet wird.

Dass dieses Problem auch mit deiner DB-Auftritt, wäre für mich die einzige Erklärung für diese Meldung, die explizit das Öffnen der Entwurfsansicht anspricht.

Ich habe leider keinen bekannten, zuverlässigen Weg, um dieses Problem wieder zu beheben.
Ich würde prüfen, ob bei dir in A2007 auch etwas derartiges auftritt. Dazu solltest du nach dem Öffnen die Forms-Collection prüfen, weil das Formular auch minimiert und/oder außerhalb des sichtbaren Bereichs geöffnet sein kann und somit optisch gar nicht erkennbar ist.

Was du in jedem Fall mal probieren könntest, ist alle Objekte der DB unter A2007 in eine neue DB zu importieren.

PS: Ist "Release" denn ein Formular in deiner Anwendung? Wird das irgendwie absichtlich beim Start der Anwendung geöffnet?
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Bitsqueezer

Hallo,

ich würde hier auch mal vermuten, daß es ein Objekt namens "Release" gibt, daß es näher zu untersuchen gilt.

Generell: Es ist nicht notwendig, spezifische Möglichkeiten neuerer Access-Versionen zu verwenden, um eine Datei inkompatibel zu machen. Neuere Access-Versionen können meistens die älteren öffnen, bereits beim ersten Öffnen wird die Datei aber verändert (beispielsweise paßt Access Office-Referenzen an die aktuell verwendete an, wenn diese neuer ist als die in der ACCDB). Das geschieht automatisch, man macht die Datei also bereits durch simples Öffnen inkompatibel, die Änderung wird sofort im Hintergrund gespeichert. Umgekehrt funktioniert das nicht, die ältere Access-Version ändert neue Office-Referenzen nicht zurück auf die eigene Version.
Auch im Format der Datei kann sich dabei etwas ändern.

Danach kann die Datei u.U. mit älteren Access-Versionen nicht mehr geöffnet werden. Also am besten immer die original unter der älteren Version erstellte ACCDB separat sichern und nur zu Testzwecken in einer neueren öffnen, aber diese sollte dann nicht an User mit älteren Versionen ausgeliefert werden.
Sollen beide beliefert werden, dann eine kompilierte ACCDE an User mit A2007 und eine separate an User mit A2016, die zuvor unter A2016 compiliert und getestet wurde.
Eine ACCDE erlaubt dann auch keine Änderung an den Objekten mehr.

Gruß

Christian

PhilS

Zitat von: Bitsqueezer am September 10, 2024, 09:54:40Sollen beide beliefert werden, dann eine kompilierte ACCDE an User mit A2007 und eine separate an User mit A2016, die zuvor unter A2016 compiliert und getestet wurde.
Speziell mit A2016 und später habe ich kaum Erfahrungen. Mit A2007, A2010 und A2013 hat es immer problemlos funktioniert, nur eine ACCDE unter A2007 zu erstellen und dann an alle User auszuliefern.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Bitsqueezer

Hallo Phil,

aus 10 Jahren Projekterfahrung mit A2007/A2010 kann ich sagen, daß es zwischen A2010 und 2007 immer wieder aus den oben beschriebenen Gründen "geknallt" hat... :)

Und ja, wenn man unter der kleinsten Version entwickelt und "nach oben" liefert, geht es normalerweise immer, weswegen ich bis zuletzt in dem Projekt immer nur mit A2007 entwickelt habe, auch wenn ich mich dazu immer wieder mit der IT anlegen mußte (die immer die neueste Version installieren wollten)... :)

In A2013 hat man ja hauptsächlich die ADPs rausgenommen (sniff..), danach hat sich am ACCDB-Format nichts mehr dramatisch verändert, soweit ich weiß.

Gruß

Christian

PhilS

Zitat von: Bitsqueezer am September 10, 2024, 11:06:03aus 10 Jahren Projekterfahrung mit A2007/A2010 kann ich sagen, daß es zwischen A2010 und 2007 immer wieder aus den oben beschriebenen Gründen "geknallt" hat... :)

Wenn man eine A2010-Datei an User mit A2007 ausliefert, gibt es mit sehr großer Wahrscheinlichkeit böse Überraschungen. Andersherum funktionierte es für mich 100% zuverlässig ohne Probleme.

Zitat von: Bitsqueezer am September 10, 2024, 11:06:03Und ja, wenn man unter der kleinsten Version entwickelt und "nach oben" liefert, geht es normalerweise immer, [...]
So meinte ich das.
Man muss auch gar nicht unter A2007 entwickeln, sondern nur die ACCDB, die man verteilen möchte in A2007 öffnen und dort die ACCDE erstellen.
ACCDBs habe ich in einem solchen Szenario nie verteilt, aber ich würde erwarten, dass das ebenfalls funktioniert, wenn man die ACCDB unter A2007 dekompiliert, komprimiert und dann neu kompiliert.

Zitat von: Bitsqueezer am September 10, 2024, 11:06:03In A2013 hat man ja hauptsächlich die ADPs rausgenommen (sniff..), danach hat sich am ACCDB-Format nichts mehr dramatisch verändert, soweit ich weiß.
ADPs hatten ja mit .ADP ihr eigenes Dateiformat, daher hatte das keinen Einfluss auf das ACCDB-Format.
Wenn man LargeInteger oder DateTimeExtended verwendet, wird die Datei für vorhergehende Access-Versionen unbrauchbar, selbst schon für die unmittelbar vorhergehenden Versionen aus A365.
Speziell für A2007 als Ziel vermute ich, dass es noch weitere solcher "breaking changes" gibt.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

joschi50

OK, daran hatte ich noch gar nicht gedacht. Release ist eine Tabelle in die ich die Änderungen an der Anwendung eintrage.
Die Anwendung holt sich die letzte Releasenummer aus der Tabelle und zeigt diese dann unter INFO in der Anwendung an.
Ein Formular unter dem Namen gibt es auch aber dieses wird nur auf Klick geöffnet um die Einträge der Tabelle anzuzeigen. Es wird nicht beim Start der Anwendung geöffnet.
Auch Wolkenkratzer haben mal als Keller angefangen.

Bitsqueezer

Hallo,

ich würde Dir empfehlen, keine zwei Objekte in Access gleich zu benennen.
Der Name sollte über die gesamte Datenbank immer eindeutig sein. Die Beschriftung dagegen ist unwichtig. Da man ja auch eine Caption für ein Formular hat, kann man da "Release" eintragen und die Tabelle z.B. "tblRelease", das Formular "frmRelease" benennen. Das hat nicht nur den Vorteil, zwei Objekte nicht verwechseln zu können, Du würdest auch in der Fehlermeldung den Objektnamen sehen und würdest sofort wissen, um was es geht und nicht um "einen Release"... :)
Darüber hinaus vermeidet man so effektiv Konflikte mit geschützten, englischen Namen (hier nicht der Fall).

Gruß

Christian