Ausführen von code, bevor irgendwelche Formulare in Access öffnen
So, ich habe eine Access-Datenbank mit einem vorderen und einem hinteren Ende. Ich werde Verteilens bald, aber ich habe keine Kontrolle darüber, wo genau Sie die Dateien auf Ihren Computern. Allerdings denke ich, dass ich auf Sie zählen können, setzen front-und back-ends in den gleichen Ordner.
Als solche, wenn der front-end geöffnet, ich möchte es zu überprüfen, ob die verknüpften Tabellen sind richtig angeschlossen, an den back-end-Datenbank. Ich habe funktionierenden code für diese; allerdings weiß ich nicht, wohin damit. Wenn die front-end-öffnet ein Menü, Formular automatisch geöffnet (konfiguriert über die start-up-Dialog-box). Ich habe den code in der OnOpen
Veranstaltung, die ich dachte, aufgetreten ist, bevor alle Daten geladen, aber wenn ich Teste das aus, bekomme ich eine Nachricht, mir zu sagen, dass die back-end kann nicht gefunden werden (Sie blickt in seine alte Lage).
Im Grunde ist es ein Ereignis kann ich verwenden, die ausgeführt wird, bevor irgendwelche Formulare geöffnet haben?
- Ich habe das gleiche problem, und für mich sind die aktuellen Antworten nicht funktionieren. Sogar, wenn ich etwas in einer Funktion, die aufgerufen wird, aus dem autoexec-makro wird ausgeführt, wenn ein Fehler angezeigt wird, dass die backend-Tabellen nicht gefunden werden kann. Also keine chance zum aktualisieren der Tabelle links vor. Gibt es irgendeine Lösung dafür oder bin ich etwas fehlt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen Sie ein Makro namens "autoexec".
Für die makro-Aktion, wählen Sie "AusführenCode" und legen Sie dann den Namen der Funktion den Namen der Funktion, die Sie verwenden, um überprüfen Sie Ihre verknüpften Tabellen.
Als Matt sagte, ein makro zu erstellen, rufen Sie "autoexec", und wählen Sie "AusführenCode" als makro-Aktion. Der Name der Funktion argument sollte den Namen der Funktion, die Sie ausführen möchten (und nicht unter), und wenn die Funktion keine Argumente hat, sollte man noch () am Ende, oder es wird nicht funktionieren.
Ich generell lieber eine kleine form, die sich läuft eine Reihe von Kontrollen, wie die Suche nach der back-end und so weiter, und verschiedene Optionen einstellen. Der code für das open-Ereignis dieser form könnte sein:
Habe ich immer eine Tabelle der Tabellen verknüpft werden, die in der front-end-und wenn einer fehlt, dieses Formular kann verwendet werden, um den Fehler zu melden, oder ein anderer Fehler, für diese Angelegenheit.
Wenn alles ok ist, das kleine Formular ruft das Hauptmenü oder das Formular und der Benutzer nie sieht Sie die überprüfung der form. Ich würde auch dieses Formular verwenden, öffnen Sie ein Kennwort-Eingabeaufforderung, wenn erforderlich.
Bevor Sie den front-end-und Backend im gleichen Ordner, darüber nachzudenken. Ist es nicht Wert mit 2-Ordner? Was über mehrere Benutzer auf dem gleichen computer Zugriff auf die gleichen back-end-Datenbank? Was über mehrere Benutzer Zugriff auf die gleiche Datenbank über ein Netzwerk? Was ist die Notwendigkeit, einen front-end-back-end-Typologie, wenn die app ist im Grunde eine single-user-app?
Warum gehst du nicht fügen Sie ein Dialogfeld, um Ihre app, falls die Verbindung verloren geht? Sie erstellen könnte ein fileDialog-Objekt in Ihrem code, so dass der Benutzer durchsuchen, die für eine *mdb-Datei irgendwo auf seinem Rechner/Netzwerk. Es ist dann möglich, zu kontrollieren, dass die ausgewählten mdb-Datei enthält alle gewünschten Tabellen, und öffnen Sie die entsprechenden links (ich denke, du bist mit der transferDatabase-Befehl).
Und was ist mit zusätzlichen Extras/Verweise benötigen Sie für Ihre app zu laufen, wenn Sie verteilen Sie es an Ihre Endkunden? Standardmäßig MS Access Datensätze die 3 grundlegenden:
Wenn Ihre app braucht nichts anderes, wie ADO oder Office objects (ADODB.recordset-oder Office-commandbars zum Beispiel), müssen Sie die Verweise manuell für jede installation, da der Endverbraucher nicht in der Lage zu öffnen, die VBA-Fenster und den Zugriff auf die Extras/Verweise im Menü.
Also, wenn Sie brauchen, um bereitstellen, die Ihre app auf mehreren Computern, empfehle ich dringend, die Verwendung einer deployment-tool wie dieses Kostenlose. Sie brauchen ein paar Stunden, um in der Lage sein, um es richtig zu nutzen, aber das Ergebnis ist es Wert. Sie werden in der Lage sein, geben Sie Ihren Kunden einen echten installer-Modul. Es wird das erstellen von Ordnern, hinzufügen angefordert Abkürzungen und Literatur verwalten in der Registrierung des Computers. Damit wird Ihre Bereitstellung definitiv schmerzfrei.
EDIT: das autoexec-makro ist mit Sicherheit die richtige Lösung für den Aufruf von code, der vor jedem Ereignis.
EDIT: nicht zu vergessen, dass Ihre Endverbraucher können Gewinn machen der runtime-version von Access, die ist kostenlos!
Als andere haben vorgeschlagen, würde ich die AutoExec-makro in diesem Fall. Wenn der code, der prüft die verknüpften Tabellen ist derzeit ein sub, ändern Sie eine Funktion, die TRUE zurückgibt, wenn es erfolgreich ist. Sie können dann mit den "Bedingungen" - Spalte in der AutoExec-makro zum beenden der Anwendung mit einer benutzerfreundlichen Fehler dialog, wenn der link-Tabelle code nicht. Ihre AutoExec-makro könnte etwa so Aussehen:
Könnten Sie schicken Ihnen ein *.BAT-Datei, kopiert die Datenbanken zu c:\temp (oder was auch immer Ordner, den Sie wählen. Setup die verlinkten zu diesem Ordner vor dem erstellen der BAT-Datei. Zip it up und per E-Mail zu Ihnen. dann werden Sie nicht haben, um sorgen mit der extra-code.