Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1216to1220
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

Aus Access xls öffnen und dort Makro starten

Aus Access xls öffnen und dort Makro starten
Julia
Hallo,
kann ich aus Access ein xls öffnen und dort ein Makro ausführen?
Das Makro aktualisert in der xls einen Datenbestand im Tabellenblatt 'A'
Anschließend soll das Sheet A in Access kopiert werden.
Jemand eine Idee?
Gruß
Julia

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Aus Access xls öffnen und dort Makro starten
15.06.2011 14:34:26
ChrisL
Hi Julia
Zu Teil 1: Mit folgendem Makro öffnest du die Excel Datei und führst das Makro aus.
Sub t()
Dim app As Excel.Application
Dim wbk As Excel.Workbook
Set app = New Excel.Application
Set wbk = app.workbooks.Open("C:\Pfad\Datei.xls")
app.Run ("MakroName")
wbk.Close
Set app = Nothing
End Sub
Die Tabelle nach Access kopieren könnte etwas schwieriger sein. In Access müssen die Datenfelder resp. Daten-Typen (Text, Zahl, Datum usw.) genau definiert sein. Grundsätzlich mit folgendem Befehl:
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel97, _
"DeineAccessTab", "C:\...\ExcelDat.xls", True, _
"DeineExcelTab"
cu
Chris
PS: Im VBA Editior, Extras, Verweise, Microsoft Excel aktivieren
Anzeige
AW: Aus Access xls öffnen und dort Makro starten
15.06.2011 17:34:59
fcs
Hallo Julia,
zum Teil 1: ähnliche Lösung wie bei Chris. In ACCESS muß im VBA-Editor der Verweis auf die Excel-Objekt-Library nicht gesetzt werden. Das Makro ermöglicht ggf. manuell mit dem Anfügen der Datensäte weiterzumachen.
zum Teil 2 (Import der Daten nach Excel):
Hier fehlt mir VBA-Erfahrung in ACCESS.
Die Anforderungen an das Makro hängen aber von der vorhandenen Struktur in der Datenbank ab.
- Ist schon eine Tabelle vorhanden?
........- Sollen die Daten aus Blatt A der Exceldatei angefügt werden?
........- Sollen die "alten" Daten in der Tabelle vorher gelöscht werden?
- Soll eine neue Tabelle in der Datenbank angelegt werden?
Gruß
Franz
'Code in einem allgemeinen Modul in ACCESS
'Erstellt unter ACCESS 2003 / Excel 2003
Option Compare Database
Option Explicit
Private oAppExcel As Object, oWbk As Object
Sub Call_Excel()
Dim sDatei As String, sMakroName As String
sDatei = "C:\Lokale Daten\Test\Daten\AccessDaten.xls" 'Name der Exceldatei
sMakroName = "ACCESS_Calls" 'Makroname (in einem allgemeinen Modul) in der Excel-Datei
'  sMakroName = "Tabelle1.ACCESS_Calls" 'Makroname (in einem Tabellen-Modul) in der Excel-Datei
If oAppExcel Is Nothing Then
'Excel-Anwendung starten, dies kann ggf. etwas dauern
Set oAppExcel = VBA.CreateObject("Excel.Application")
End If
'Excelanwendung sichtbar anzeigen
oAppExcel.Visible = True
If oWbk Is Nothing Then
'Exceldatei öffnen
Set oWbk = oAppExcel.workbooks.Open(sDatei)
End If
'Makro starten
oAppExcel.Run "'" & oWbk.Name & "'!" & sMakroName
'Excelfenster minimieren
oAppExcel.WindowState = -4140 'xlMinimized
'gewünschten Datenbereich kopieren. Dieser sollte in der 1. Zeile die gleichen _
Feldnamen haben wie die Felder in der ACCESS-Tabelle in der die Daten angefügt _
bzw. eingefügt werden sollen.
oWbk.worksheets("A").Range("A1:D4").copy
VBA.MsgBox "Kopierte Exceldaten können jetzt in ACCESS angehängt/eingefügt werden!", _
vbInformation, "Exceldaten aktualisieren - importieren"
End Sub
Sub CloseExcel()
'Excel-Datei speichern und Excel-Objekt beenden
If Not oWbk Is Nothing Then
oWbk.Save
oWbk.Close savechanges:=False
End If
If Not oAppExcel Is Nothing Then
oAppExcel.Quit
End If
Set oWbk = Nothing
Set oAppExcel = Nothing
End Sub
'Erstellt unter ACCESS 2003
'Code in einem Formular-Modul in dem die Daten-Tabelle angezeigt/bearbeitet wird.
'Dieser muss natürlich für den Datenimport ggf. maßgeschneidert werden.
Option Compare Database
Option Explicit
Private Sub CmdButton_Excel_Click()
'Schaltfläche zum Öffnen der Exceldatei/-anwendung bzw. Starten des Makros
Call_Excel
End Sub
Private Sub CmdButton_Excel_close_Click()
'Schaltfläche zum Schliessen der Exceldatei/-anwendung
CloseExcel
End Sub
Private Sub Form_Close()
'Beim schliessen des Formulars wird ggf. Exceldatei/-anwendung geschlossen
CloseExcel
End Sub

Anzeige

53 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige