ist es möglich einfach eine Access-Datei per Button zu öffnen?
Die Datei ist in C:\temp\Materialdatenbank.mbd hinterlegt.
Kann doch eigentlich nicht ao schwer sein, aber irgendwie bekomme ich es nicht hin.
Mfg
Andre
Sub OpenAcc()
Dim sPath As String
sPath = "C:\temp\Materialdatenbank.mdb"
Set oApp = CreateObject("Access.Application")
oApp.Visible = True
oApp.OpenCurrentDatabase sPath
End Sub
Sub DBZugriff_Kerstin()
Dim cn As Connection
Dim rs As Recordset
Dim SQLString As String
Dim xx As Worksheet ' das Ziel-Tabellenblatt in Excel
Dim i As Integer
Dim j As Integer
'Const DBPfad = "J:\Projects\Vertrieb\EBY-S-IT-Projekt\Datenbank\Archiv Datenbank.mdb"
Const DBPfad = "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Access-DBs\Archiv Datenbank.mdb"
Set xx = Worksheets("Tabelle2") ' das Ziel-Tabellenblatt in Excel
' Die datenbank öffnen
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0" 'für Access 2000 und höher
.ConnectionString = "Data Source=" & DBPfad
.Open
End With
' Definieren was geholt werden soll - hier alles
'SQLString = "SELECT Tabelle1.* FROM Tabelle1"
' hier nur die PstLZ die mit 2 beginnen aus der Access-Tabelle
SQLString = "SELECT Tabelle1.* FROM Tabelle1 WHERE Tabelle1.PSTLZ_Straße LIKE ""3%"""
Set rs = New ADODB.Recordset
rs.Open SQLString, cn, adOpenDynamic, adLockReadOnly
' Die Feldnamen der Datenbanktabelle in die erste Zeile der Exceltabelle
' hier in die "Tabelle2" schreiben
For j = 0 To rs.Fields.Count - 1
xx.Cells(1, j + 1) = rs.Fields.Item(j).Name
Next
' Jetzt alle Sätze holen und in die Exceltabelle schreiben
i = 1
rs.MoveFirst
Do While rs.EOF = False
i = i + 1
For j = 0 To rs.Fields.Count - 1
If IsNull(rs.Fields.Item(j).Value) = False Then
xx.Cells(i, j + 1) = rs.Fields.Item(j).Value
End If
Next
rs.MoveNext
Loop
rs.Close
cn.Close
End Sub
Um eine Access-Datei in Excel zu öffnen, kannst du folgenden VBA-Code verwenden. Dieser Code öffnet eine Access-Datenbank direkt aus Excel:
Sub OpenAccess()
Dim sPath As String
sPath = "C:\temp\Materialdatenbank.mdb"
Dim oApp As Object
Set oApp = CreateObject("Access.Application")
oApp.Visible = True
oApp.OpenCurrentDatabase sPath
End Sub
ALT + F11, um den VBA-Editor zu starten.Sub OpenAccessPersistent()
Dim sPath As String
sPath = "C:\temp\Materialdatenbank.mdb"
Dim oApp As Object
Set oApp = CreateObject("Access.Application")
oApp.Visible = True
oApp.OpenCurrentDatabase sPath
' Verhindert das Schließen der Anwendung
Do While True
DoEvents
Loop
End Sub
Hyperlink verwenden: Du kannst auch einen Hyperlink in Excel erstellen, der direkt zur Access-Datei führt.
Batch-Datei: Erstelle eine Batch-Datei (.bat), die die Access-Datenbank öffnet:
start C:\temp\Materialdatenbank.mdb
Wenn du auf Daten aus einer Access-Datenbank zugreifen möchtest, kannst du den folgenden Code verwenden, um Daten in ein Excel-Arbeitsblatt zu importieren:
Sub ImportFromAccess()
Dim cn As Object
Dim rs As Object
Dim sSQL As String
Dim i As Integer
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\Materialdatenbank.mdb;"
sSQL = "SELECT * FROM Tabelle1"
Set rs = CreateObject("ADODB.Recordset")
rs.Open sSQL, cn
For i = 0 To rs.Fields.Count - 1
Cells(1, i + 1).Value = rs.Fields(i).Name
Next i
i = 2
Do While Not rs.EOF
For j = 0 To rs.Fields.Count - 1
Cells(i, j + 1).Value = rs.Fields(j).Value
Next j
rs.MoveNext
i = i + 1
Loop
rs.Close
cn.Close
End Sub
Option Explicit am Anfang jedes Moduls, um sicherzustellen, dass alle Variablen deklariert werden.1. Kann ich eine .mdb-Datei ohne Access öffnen?
Ja, du kannst die .mdb-Datei über VBA in Excel öffnen, ohne dass Access installiert sein muss, indem du die richtigen OLEDB-Provider verwendest.
2. Wie kann ich auf spezifische Tabellen in meiner Access-Datenbank zugreifen?
Du kannst SQL-Abfragen verwenden, um spezifische Daten aus Tabellen zu ziehen. Ändere einfach die SQL-Anweisung im VBA-Code, um die gewünschte Tabelle auszuwählen.
3. Was mache ich, wenn die Access-Datenbank nicht gefunden wird?
Überprüfe den Dateipfad und stelle sicher, dass die Datei vorhanden ist. Achte darauf, dass der Pfad korrekt in Anführungszeichen gesetzt ist.