Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Access starten aus Excel per VBA

Access starten aus Excel per VBA
25.01.2016 11:41:01
Roman
Hallo, ich bin ratlos bzgl. dem Schließen einer Datenbank nachdem Sie aus Excel per VBA geöffnet wurde und für jeden Tipp dankbar! Habe bereits sehr viel Zeit mit Suchen im Internet verbracht aber nichts kommt meinem Problem nahe.
Zielsetzung: Es soll aus Excel eine Access Datenbank geöffnet, ein Datensatz aktualisiert und die Datenbank dann wieder geschlossen werden. Das funktioniert soweit auch ganz gut, der Datensatz wird aktualisiert und Access geschlossen. Allerdings kann ich, zumindest solange Excel noch geöffnet ist, die Datenbank nicht mehr wie gewohnt per Doppelklick starten, es wird dann zwar eine .laccdb Datei angezeigt, aber Access bleibt unsichtbar. Dieses Verhalten kann ich mir nicht erklären, es scheint als würde Excel im Hintergrund trotzdem eine Verbindung zu Access aufrechterhalten bzw. Access blockieren.
Hier der Code:
Option Explicit
Sub test2()
Dim wb As DAO.Workspace
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim Path As String
Path = "C:\Users\fcfriro\Desktop\Audit_Status_Monitor.accdb"
Set wb = DBEngine(0)
Set db = wb.OpenDatabase(Path)
Set rs = db.OpenRecordset("Test")
rs.Edit
rs!Status = "Test"
rs.Update
rs.Close
db.Close
wb.Close
Set rs = Nothing
Set db = Nothing
Set wb = Nothing
End Sub
Im VBA Editor sind u.a. folgende Verweise gesetzt: MS Excel 14.0 Object Library, MS Office 14.0 _
Object Library, MS Access 14.0 Object Library und MS DAO 3.6 Object Library
Bin dankbar für jede Hilfe! Grüße Roman

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Access starten aus Excel per VBA
25.01.2016 18:17:32
Luschi
Hallo Roman,
hier mal meine Version, so wie aich das mache.
Wichtig dabei: keine Vba-Verweise zu der verwendeten Access- bzw. DAO-Version.
Da DAO keinen installierte Access-Version benötigt, war der Accccess-Verweis sowiso überflüssig. _

Sub MacheMal()
Dim wb As Object
Dim db As Object
Dim rs As Object
Dim sPath As String, sDatei1 As String, sDatei2 As String
'Late Binding -->
'keine gesetzten Verweise auf vorhandene/installierte  DAO- & Access-Versionen!!!
sPath = "H:\Daten\Access\Access_2010\Lager\"
sDatei1 = "Lager.accdb": sDatei2 = "Lager.ldb"
Set wb = CreateObject("DAO.DBEngine.120").Workspaces(0)
Set db = wb.OpenDatabase(sPath & sDatei1)
Set rs = db.OpenRecordset("abfLager")
rs.Edit
rs!LagerOrtBeschreibung.Value = "Lummy_02b"
rs.Update
rs.Close
db.Close
Do While Dir(sPath & sDatei2, vbNormal)  ""
'warten bis ldb-Datei gelöscht ist
DoEvents
Loop
Set rs = Nothing
Set db = Nothing
Set wb = Nothing
MsgBox "F e r t i g!", vbSystemModal + 48, "hinweis..."
End Sub
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Access starten aus Excel per VBA
30.01.2016 13:22:11
Roman
Danke Luschi,
das war genau was ich gesucht hatte! Könntest Du mir noch einen Hinweis geben warum die Verweise überflüssig waren?
Gruß Roman

AW: Access starten aus Excel per VBA
30.01.2016 21:37:01
Luschi
Hallo Roman,
hier mal eine interessante I-Net-Seite zu 'Early / Late Binding'
http://www.access-im-unternehmen.de/601
Gruß von Luschi
aus klein-Paris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige