Januar 19, 2021, 05:43:49

Neuigkeiten:

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


Access 2016 mit Back und Frontend startet nicht

Begonnen von martie01, Dezember 29, 2020, 10:08:52

⏪ vorheriges - nächstes ⏩

martie01

Hallo,
ich habe das gleiche Problem, welches Waldis hatte:
https://www.access-o-mania.de/forum/index.php?topic=21646.msg123946#msg123946

Mein Frontend startet nicht, wenn ich das Backend umbenenne bzw. verschiebe. Ich bekomme den Hinweis auf Komprimierung und dann den Startbildschirm, wo links die zuletzt geöffneten Datenbanken erscheinen. Ich hätte gedacht, das auch ohne Backend zumindestens das Startformular ohne Anbindung an einer Tabelle sichtbar wäre.

Habe auch keine Möglichkeit, mir Fehlermeldungen anzeigen zu lassen. Und bekomme auch keine Chance, den geänderten link einzugeben.

Hat jemand bitte eine Idee?!

Grüße

steffen0815

Hallo,
hast du dich schon mit dem Ersteller der DB-Anwendung in Verbindung gesetzt?
Wenn du es selbst bist, solltest du ja wissen was du programmiert hast  :) .

Erster Ansatz wäre der Start mit gedrückter (und festgehaltener) Shift-Taste.
Gruß Steffen

martie01

Hallo Steffen,
das war wirklich witzig  ;D , aber leider nicht zielführend.
Geschrieben habe ich Sie und start mit gedrückter (und festgehaltener) Shift-Taste akzeptiert er in dem Fall nicht mehr. Ansonsten funktioniert das mit Shift..

steffen0815

Dezember 29, 2020, 12:45:20 #3 Letzte Bearbeitung: Dezember 29, 2020, 12:49:22 von steffen0815
Hallo,
Zitatdas war wirklich witzig
Das war nicht witzig gemeint.
Wenn die Shift-Taste nicht funktioniert (und eine AutoExec/Startformular startet), dann musst DU das so programmiert haben.

Man kann das aber wieder "wegprogrammieren" .....

Du kannst aber zunächst versuchen alle Objekte des FE in eine neue leere DB zu importieren.
Gruß Steffen

MzKlMu

Hallo,
wenn die Shifttaste nicht funktioniert, dann hat der Entwickler (also DU) diese Funktion in den Optionen abgeschaltet.
Zum Einschalten muss diese Funktion über VBA wieder aktiviert werden.
Da habe ich aber gerade keinen Code dazu parat.

Bei der Aufteilung einer DB in Backend und Frontend sollte eine automatischen Einbindungsfunktion der Backendtabellen realisiert werden.

Im Netz findet sich jede Menge Code dazu.
Gruß
Klaus

martie01

Das ist ja das kuriose. Wenn die Verbindung Backend / Frontend passt, kann ich mit Shift den Satrvorgang überwachen. Wenn der Pfad nicht stimmt, bewirkt das Shift drücken nichts. Die Datenbank wird nicht geöffnet.

Eine automatische Einbindungsfunktion der Backendtabellen habe ich integriert. Die wird aber gar nicht angesprochen.
Ich habe auf bereits ein neues Formular ohne Tabellen Anbindung erzeugt und dieses als Startformular benannt. Dieses brachte allerding auch nichts.

Die Objekte des FE in eine neue leere DB zu importieren wäre schon viel Arbeit. ::)

steffen0815

Hallo,
ZitatDie Objekte des FE in eine neue leere DB zu importieren wäre schon viel Arbeit
Ca 5 Tastenklicks sind viel Arbeit :D .

Neue DB erstellen und über
Externe Daten -> Access
alle Objekte importieren.
Gruß Steffen

martie01

Ah , wieder ordentlich was dazugelernt :D

Also, ich habe die Datenbank kopiert. Die Größe ist von 300MB auf 20Mb geschrumpft, aber leider ist der Fehler immer noch da.
Ich kann weder mit Shift in denProzess eingreifen, noch öffnet er mir die Datenbank.

derArb


derArb

Das Problem haben wir außerhalb des Forums gelöst.
Es fehlte eine Prüfroutine der Tabellenverknüpfung,
welche bei Start der DB diese überwacht und gegebenenfalls
einen FileDialog startet, um eine neue Verknüpfung zu erstellen.

derArb

Leider wurde das Problem nicht gelöst, wie ich nach Rückfrage nun hörte.
Die Beispiel DB im Anhang ist auf das Wesentliche eingedampft.
Wie ich nun höre, dreht es sich beim TE um Access 2016, wie auch bei mir.
Allerdings benutzt er die 64bit Version und ich die 32bit Version.
Bei mir funktioniert alles, beim TE nicht.
Hier mal der Code in Modul 'mod_BackendVerknüpfung', der bei ihm einfach die FILEEXISTS Funktion ignoriert.
Auch Tests mit DIR statt FILEEXISTS werden ignoriert.
Public Function fncRelinkAccessTables() As Boolean
...
...
If (FileExists(BEPfad) = False) Then '>>>>>>>>>>> WIRD BEIM TE EINFACH IGNORIERT
    MsgBox "BackEnd-Datenbank nicht gefunden !@@" & _
           "Die BackEnd-Datenbank scheint umbenannt oder verschoben" & vbCrLf & _
           "worden zu sein." & vbCrLf & vbCrLf & _
           "Bitte suchen Sie die BackEnd-Datenbank und klicken Sie auf die" & vbCrLf & _
           "Schaltfläche 'Verknüpfen'." & vbCrLf & vbCrLf & _
           "Die Tabellen der BackEnd-Datenbank werden anschließend mit der" & vbCrLf & _
           "FrontEnd-Datenbank neu verknüpft.", _
           vbCritical, "Tabellenverknüpfung"
...
...
End Function
      

Der Ablauf des DB Starts ist:
Aufruf des Makro AUTOEXEC.
Darin wird die Funktion 'fncRelinkAccessTables' aufgerufen.
Darin wird bei umbenanntem oder verschobenem BE ein Dialog aufgerufen, über welchen
man die BE neu verlinken kann.
Dann wird das Formular 'frmAdressen' aufgerufen.

Kann jemand, der Access 64bit benutzt diesen Effekt nachvollziehen und Tipps geben, was in 64bit zu ändern wäre?

DF6GL

Januar 07, 2021, 20:39:48 #11 Letzte Bearbeitung: Januar 07, 2021, 21:13:14 von DF6GL
Hallo derArb,


ich kann den beschriebenen Effekt nicht nachvollziehen.  Auf einer VM mit Win10-20H2 und Access2016-64bit erscheint nach Start der DB sofort die MsgBox bezgl. nicht gefundener Backen-Datenbank. Nach Klick auf OK wird der Filedialog geöffnet  mit Init-Verzeichnis Currentproject.Path.


Habe dann eine tblAdressen in einer accdb-Datei als Backend angelegt, um die Tabelle auch tatsächlich verknüpfen zu können. Auch hier läuft alles normal.


Sobald das Backend verknüpft wurde, wird die DB bei weiteren Neustarts normal gestartet.


Meine Vermutungen:


Sicherheitsoptionen nicht oder falsch eingestellt.
Windows-Userzugriffrechte auf das BE-Verzeichnis nicht ausreichend.

Was mir noch aufgefallen ist, ist der relativ lange Verzeichnispfad zum Backend, der möglicherweise Ursache für das Verhalten sein könnte.


Zudem: Die Selektion des Moduls ist im Makro überflüssig.


PS:   Wenn ich das anfänglich von martie01 beschriebene Problem interpretiere, so ist mir dieser Effekt auch schon mal untergekommen. Soll heißen, Access2016 (32bit) geht sofort ohne weitere Meldungen auf das Home-Fenster, wenn die BE-Datei nicht gefunden wird. Die DB wird nicht geöffnet.

Bei Access2029 hingegen kommt dagegen eine MsgBox mit dem Hinweis, dass das BE nicht gefunden werden kann und es wird anschließend der Navibereich angezeigt.

Eine ähnliche Prüfung der BE-Datei (wie hier im Beispiel) und Neuverlinkung hat dann Abhilfe geschaffen.


martie01

Vielen Dank an alle Beteiligten schon einmal.
Ich werde am WE das mit den Rechten des be prüfen.
Und Anderes ausprobieren...

Josef P.

Hallo!

Zitat von: undefinedPublic Function fncRelinkAccessTables() As Boolean
   ...
   ...
   If (FileExists(BEPfad) = False) Then '>>>>>>>>>>> WIRD BEIM TE EINFACH IGNORIERT
      ...

Ist in den "..." eine On Error Resume next enthalten?

Eventuell hilft diese Änderung:
Public Function fncRelinkAccessTables() As Boolean
   ...
   dim BeExists as boolean
   BeExists = FileExists(BEPfad) ' bleibt false, falls durch Fehlerbehandlung übergangen
   If not BeExists Then
      ...
mfg
Josef

derArb

Hallo,
@franz, DF6GL: Danke für den Tip im Autoexec Makro.
@Josef P.: Es funktioniert ja auch nicht die DIR-Funktion.
Ich bin gespannt, was die Lösung sein wird.