Öffnen von Access aus Excel VBA
Edit: Die Antwort auf diese Frage finden Sie in den Kommentaren der akzeptierten Antworten.
Ich bin versucht, eine Access-Datenbank öffnen, die aus einer Schaltfläche, die in meiner excel-Datei. Ich habe momentan diesen code:
Private Sub bttnToAccess_Click()
Dim db As Access.Application
Set db = New Access.Application
db.Application.Visible = True
db.OpenCurrentDatabase "C:\Users\wcarrico\Desktop\wcarrico-CapstoneFinalSubmission.accdb"
End Sub
Diese scheint zu funktionieren kurz und dann Zugriff heruntergefahren fast sofort. Wenn es darauf ankommt, wird die Access-Datei ein AutoExec-makro, das ausgeführt wird, durch ein paar tests auf öffnen.
- Versuchen Sie, führen Sie den Zugriff auf GUI in Excel, oder nur versuchen, eine Verbindung zu der Datenbank und die Abfrage der Daten innerhalb?
- Ich bin nur bietet einfachen Zugang zu der Datenbank für den Benutzer. Ich bin Extrem Neuling in VBA und nicht einmal sicher, was die Acess-GUI ist. Die Datenbank ist im Grunde ein separates tool für die Planung einer Hochzeit. Die excel-und access-Dateien wird schließlich die Verbindung durch eine importieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie nicht, öffnen Sie die Access-Anwendung dann; erstellen Sie einfach ein connection-Objekt mit einem der Daten-Access-Technologien:
- OLE-DB-oder
- ODBC.
Google "ODBC Connection strings" oder "OLE-DB Connection Strings", um details zu erhalten, je nach Ihrer Konfiguration (und Access-Dateityp).
Wahrscheinlich ADODB ist die einfachste aktuellen Bibliothek für Ihre Daten zugreifen.
Update:
Versuchen Sie, Importieren Sie die Daten aus Access dann mit der Daten -> Aus dem Zugang - Assistenten. Yu kann immer das Makro verwenden, das Rekodieren Einrichtung zum automatischen generieren von VBA-code für Sie, das wird einige Infrastruktur für Sie; ich benutze diese regelmäßig bei der Erforschung neuer Teile des VBA-Objektmodell.
Update - Endgültige Auflösung des Problems, aus den Kommentaren unten
Das kann sein, weil die variable geht out of scope, bewegen Sie die Erklärung der
db
außerhalb der Funktion auf Modul-Ebenedb
außerhalb der Funktion auf Modul-Ebene.Den code gestartet, den Zugang, indem Sie eine Instanz der Anwendung zugewiesen, um eine Objekt-variable. Am Ende der Prozedur, wird die variable ging aus dem Rahmen, sodass der Zugriff heruntergefahren.
Sie akzeptiert die Antwort zu verwenden, eine variable auf Modulebene für die Access-Anwendung Instanz. In diesem Fall wird der Zugriff weiterhin ausgeführt wird, nachdem die Prozedur beendet. Allerdings, wenn die user-exits Excel, Access schließen zu.
Wenn das Ziel ist, starten Sie Access, und lassen Sie es laufen, bis der Benutzer entscheidet, um es zu schließen, starten Sie einfach direkt Zugreifen, ohne ihm die Instanz der Anwendung auf eine Objekt-variable (
Set db = New Access.Application
). Dassdb
variable ist nützlich, wenn Sie Ihre Excel-code, der benötigt es für andere Zwecke. Jedoch, es ist eigentlich nur zum öffnen der db-Datei.Können Sie die
Run
Methode derWScript.Shell
öffnen Sie Ihre db-Datei in eine Access-Sitzung.Entfernen Sie die
New
Erklärung, dann funktioniert esIch weiß, dies ist ein Alter thread, aber Sie werden diese Fehler in Excel VBA wenn Sie versuchen, öffnen Sie eine Access-Datenbank, aber Sie müssen nicht zwei bestimmte Verweise geklickt. (Extras-Verweise im VBA-Editor-Bildschirm). Sie müssen klicken Sie auf "Microsoft Access 15.0 Object Library" und "Microsoft ActiveX Data Objects 6.1 Bibliothek'.
Eigentlich ist es ziemlich einfach: