PDA

Vollständige Version anzeigen : Acc97 als Runtime und Access 2000


M.Schindler
30.11.2006, 20:45
Hallo zusammen,

habe hier ein für mich alleine nicht lösbares Problem.
Folgendes Sezenario:
Habe eine Anwendung geschrieben und mit Innosetup eine Runtime erstellt. Die Anwendung lässt sich problemlos auf einem Rechner mit Acc2000 installieren und ausführen. Die bekannten Neuregistration Probleme konnte ich mit einer Änderung der Datei "msaccess.srg" aus dem Wege gehen. Das merkwürdie ist, dass wenn mann zuerst die Anwendung startet und dann noch Access 2000 folgende Fehlermeldung erscheint:

nicht erkennbares Datenformat.

Andersrum funktioniert es aber problemlos, so wie das für mich aussieht versucht Windows die Access 2003 Datei mit der Acc97 Runtime zu öffnen. Hat schon jemand das Problem gehabt und falls ja was war die Lösung?

Vielen Dank!

Gruß
Michael

Anne Berg
30.11.2006, 22:21
Hallo,
wenn mann zuerst die Anwendung startet und dann noch Access 2000

... versucht Windows die Access 2003 Datei mit der Acc97 Runtime zu öffnenwas denn jetzt: 2000 oder 2003? - Aber egal:
Wie sieht denn das aus? Startest du wirklich Access 2000/2003 oder öffnest du eine MDB, von der du weißt, dass sie in A2??? erstellt wurde? :p

Dein/der Computer weiß das nämlich nicht, er startet immer die zuletzt verwendete Access-Version. :(
Somit kannst du also MDBs jeglicher Art nur noch über eine Verknüpfung starten oder aus der passenden Access-Instanz heraus.

M.Schindler
30.11.2006, 23:39
Hallo Anne,

Aus der Accessinstanz lässt sich die mdb ohne Fehlermeldung starten. Also ist deine Diagnose soweit korrekt. Gibt es hier wirklich keine Möglichkeit dieses Problem zu lösen. Woher weiss das System welche Access-Version gestartet worden ist? Wird das irgendwo in der Registry geispeichert?

Du schreibst er nimmt immer die zuletzt verwendete Version. Wenn ich jetzt Acc97 Runtime starte und dann beende und dann die 2000 Version müsste er doch die Acc97 nehmen. Dies ist aber nicht der Fall, in diesem wird die mdb mit Access 2000 gestartet. Also diese Kombination geht problemlos zuerst Acc 2000 und dann parallel Acc97 Runtime. Wenn funktioniert es andersrum nicht zuerst Acc97 und dann Acc2000.

Danke für deine Hilfe.
Gruß
Michael

Anne Berg
30.11.2006, 23:59
Sorry, da kann ich dir am Ende dann doch nicht mehr ganz folgen...

Ja, es stimmt, der letzte Zugriff wird in der Registry gespeichert.
Wenn ich jetzt Acc97 Runtime starte und dann beende und dann die 2000 Version müsste er doch die Acc97 nehmen. Dies ist aber nicht der Fall,...
Es kommt schon sehr genau darauf an, wie du das jeweils machst, aber das hatte ich ja bereits erwähnt.

Mehr fällt mir dazu leider nicht ein.

M.Schindler
01.12.2006, 00:24
Also lass mir noch eine Chance Anne:) . Ich versuchs nochmal.

ich starte zuerst eine ganz normale mdb Datei, irgendeine nur zum Testzweck. Diese öffnet auch wie erwartet mir Access 2000. Soweit alles Ok. Anschließend starte ich die installierte Acc97-Runtime-Anwendung über folgende Verknüpfung:

"C:\Programme\RID Light\office\msaccess.exe" /wrkgrp "C:\Programme\RID Light\RID.mdw" /runtime "C:\Programme\RID Light\RID.mde"

Soweit läuft alles OK meine Anwendung startet und Access 2000 kann auch parallel genutzt werden.:mrcool:

So und jetzt zu dem Fehlerszenario: ich starte zuerst die Acc97-Runtime-Anwendung. Soweit alles OK. Anschließend starte ich wieder die Beispiel mdb Datei und nun kommt es zu dem bereits erwähnten Fehler.:(

Wieso wird in diesem Fall die Beispiel mdb nicht wie erwaret weiterhin im Acess 2000 Format geöffnet?

Weist du vielleicht wo in der Registry dieser Wert gespeichert wird. Habe versucht über Regmon den Start zu loggen, finde aber nichts.

Danke und Gruß
Michael

_MD_
01.12.2006, 01:15
weil MDB dann mit A97 verknuepft ist und das kein neueres Format kennt. Falls es ein echtes Problem darstellt, gibt es fuer so etwas MDB Launcher, z.B. http://www.aylott.com.au/accver.htm oder auch eine teurere Loesung von Total Access. Ich kenne die beide nicht aus dem praktischen Einsatz...

Anne Berg
01.12.2006, 07:09
Hallo und guten Morgen,

ich habe den Verdacht, du weigerst dich, die Tatsachen zu akzeptieren... ;)Anschließend starte ich wieder die Beispiel mdb Datei Es ist wohl so, dass du diese Datei eben per Doppelklick öffnest und nicht aus Access 2000 heraus, wie ich es bereits beschrieben hatte. Es hat auch keinen Sinn zu versuchen, in die Registry einzugreifen, diesen Automatismus kannst du nicht aushebeln, irgendeinen Workaround wirst du nicht umgehen können, sei's über selbst angelegte Links, Änderung der Gewohnheiten oder mit dem von _MD_ angesprochenen Tool...

M.Schindler
01.12.2006, 08:07
Hallo Anne,

hast recht versuche die Tatsachen zu meinem Gunsten hinzubiegen.
Über selbst angelegte Verknüpfung gehts es, dass ist klar. Ich weiß aber auch, daß ich, wenn ich die Software an meine Kunden ausliefere, dann werden diese sich schwer tuen für jede mdb, die in der höheren Version liegt neue Verknüpfungen anzulegen.

Die Softwaretipps werde ich mir mal anschauen

Danke und Gruß
Michael.

Anne Berg
01.12.2006, 08:15
Dann bringst du ihnen halt bei, dass sie zuerst 'ihr' Access öffnen müssen und dann die MDB. ;)

Kunden, die selbst Access-Entwicklungen betreiben, sind im allgemeinen eher selten, meine ich. Produktionsmäßig eingesetzte Access-Anwendungen jedoch sollten stets über eine Verknüpfung gestartet werden.

Du könntest dir leicht selbst ein Tool basteln, das die Auswahl von MDBs unterstützt, die Version prüft und die MDB mit dem 'richtigen' Access öffnet. Das ist aber immer noch nichts für Leute, die mal eben so ganz spontan aus dem Explorer heraus eine MDB-Datei öffnen möchten. ;)

M.Schindler
01.12.2006, 10:44
Hallo Anne,

vielen Dank für deine Hilfe, werde wohl die Tatsachen akzeptieren müßen. Was ist eigentlich der Sinn dieser Vorgehnsweise seitens Microsoft? Wieso werden alle
mdb's egal im welchem Format diese Vorliegen mit der aktuell laufenden Accessversion verknüpft. Vor allem wenn in der Registry die CurVer die andere Accessversion eingetragen ist. Das aber nur am Rande.

Gruß
Michael

Anne Berg
01.12.2006, 10:59
Es ist nunmal so, dass es für einen Dateityp nur eine Verknüpfung geben kann. :rolleyes:

Aber dabei fällt mir etwas ein, was ich irgendwann einmal gelesen habe:
du könntest einen neuen Dateityp kreieren, zb. md8, und deine Runtime damit verknüpfen, dann merkt der Anwender mit seinen 2000-er MDBs nichts davon.
Genial einfach, man muss nur drauf kommen (bzw. sich dran erinnern)! :sun:


Vorsicht: sehe gerade, dass md8 schon vergeben ist
.md8 MatchWare Mediator Project Projektdatei eines Projektes von Matchware Mediator

Schau lieber mal nach, was es alles schon gibt, bei WikiPedia gibt es eine ziemlich umfangreiche Auflistung.

M.Schindler
01.12.2006, 11:07
Hallo Anne,

werde das mal testen vielen Dank. Das pro Dateityp nur eine Verknüpfung existieren kann ist klar. Wieso ber um Gottes Willen wird eine andere Dateiverknüpfung zur der Laufzeit von der Runtime genommen? Wieso wird die Dateiverknüpfung der 2000 mdb auf Access 97 überschrieben und das nur zur Laufzeit von der Acc97 Runtime. Das ist der Punkt der mir in den Kopf gehen will.

Gruß
Michael

Anne Berg
01.12.2006, 11:24
Es wird jedes Mal die vorherige Verknüpfung in der Registry geändert, sofern sie anders lautete. Bei deiner Runtime merkst du es wahrscheilich nur deshalb nicht, weil sie (ordnungsgemäß) über einen Link gestartet wird. Hast du aber eine Entwicklungsumgebung mit mehreren Office-Versionen, musst du dich zwangsläufig damit arrangieren - und ich finde, das kann man recht gut. ;)

Natürlich verstehe ich, dass du deinem Kunden keinen unnötigen Ärger machen willst, nur weil du eine andere Version einsetzt als er. Da sollte es doch die einfachste Lösung sein, dass du deiner Runtime-MDB eine exotische Endung gibst und sie über einen Link startest.
Dazu braucht es noch nicht einmal einen Registry-Eintrag!

(das ist wirklich genial und werde ich demnächst selbst gut gebrauchen können :))

M.Schindler
01.12.2006, 13:02
Hallo Anne,

die Änderung der Dateiendung auf md9 brachte keinen Erfolg. Leider das gleiche Problem. Schade eigentlich. Vielleicht kannst du das auch mal versuchen. Trotzdem Danke für deine Hilfe.

Gruß
Michael

Anne Berg
04.12.2006, 22:11
Es tut mir leid, wenn ich dir falsche Hoffnungen gemacht habe, mir ist es auch nicht gelungen. Ich kann auch den Beitrag nicht mehr finden, den ich da wohl im Hinterkopf gehabt habe.

Vielleicht hat sonst noch jemand eine Idee?

M.Schindler
05.12.2006, 11:06
Hallo Anne,

kein Problem, lieber eine kleine Hoffnung als gar keine. Eigentlich hat mich das auch gewundert, dass das nicht funktioniert. Aber vielleicht finden wir noch eine Lösung.

Gruß
Michael

Dj3K
30.07.2007, 09:33
Moin,

sorry, das ich den uralten Thread rauskrame.
Aber ich habe genau das gleiche Problem und wollte mal fragen, ob M.Schindler vielleicht doch eine Lösung gefunden hat.

Gruß
Lars

Anne Berg
30.07.2007, 09:43
Hallo Lars,

ich weiß jetzt nicht mehr, was ich damals wie versucht habe, aber vielleicht lässt sich der alte Ansatz doch noch umsetzen.
Schau mal, ob der folgende Beitrag dir weiterhilft.
Klick mich!

Dj3K
31.07.2007, 13:48
Hi,

danke.. aber hier im Betrieb hilft das leider net.
Kann man nichts machen.

Danke!