AW: Daten von Excel nach Access übergeben
28.07.2014 11:34:34
Excel
Hallo Hendryk,
es klappt schon ganz gut, alle Tabellen werden geladen und die Abfragen gestartet. Jetzt hab ich nur noch ein Problem. Wie bekomme ich mein Ergebnis zurück ins Excel?
Sub AccessAufrufen()
' Variable festlegen
Windows("Tool Einstieg.xlsm").Activate
Sheets("SD-Struktur Tool").Visible = True
Sheets("SD-Struktur Tool").Select
Dim ACDB As String
ACDB = Range("BL353") 'Access Datenbank
Dim TB_Zuordnung As String
TB_Zuordnung = Range("BL362") 'TB_Zuordnung
Dim TB_Projektart As String
TB_Projektart = Range("BL365") 'TB_Projektart
Dim TB_Programmgr As String
TB_Programmgr = Range("BL368") 'TB_Programmgruppen
Dim TB_Planungspos As String
TB_Planungspos = Range("BL371") 'TB_Planungspositionen
Dim TB_Faktor As String
TB_Faktor = Range("BL374") 'TB_Faktor
Dim TB_Bestandsart As String
TB_Bestandsart = Range("BL377") 'TB_Bestandsart
Dim Umsatzkosten As String
Umsatzkosten = Range("BL389") 'Umsatzkostentabelle
Dim AufteilungProg As String
AufteilungProg = Range("BL392") 'Aufteilung Programmgruppen
Dim AufteilungPLPos As String
AufteilungPLPos = Range("BL395") 'Aufteilung Planungspositionen
Dim Reichweiten As String
Reichweiten = Range("BL398") 'Reichweiten
' Öffnen Access Datenbank
Dim appAccess As Object
Set appAccess = CreateObject("Access.Application")
appAccess.OpenCurrentDatabase (ACDB)
appAccess.Visible = True
appAccess.UserControl = True
'appAccess.DoCmd.OpenTable "TB-Umsatzkosten"
' Laden Tabelle "Zuordnungen"
appAccess.DoCmd.SetWarnings False
appAccess.DoCmd.RunSQL ("DELETE FROM tb_Basis_Zuordnung")
appAccess.DoCmd.SetWarnings True
appAccess.DoCmd.TransferSpreadsheet acImportDelim, , "tb_Basis_Zuordnung", TB_Zuordnung, _
True
' Laden Tabelle "Projektart"
appAccess.DoCmd.SetWarnings False
appAccess.DoCmd.RunSQL ("DELETE FROM tb_Basis_Projektart")
appAccess.DoCmd.SetWarnings True
appAccess.DoCmd.TransferSpreadsheet acImportDelim, , "tb_Basis_Projektart", _
TB_Projektart, True
' Laden Tabelle "Programmgruppen"
appAccess.DoCmd.SetWarnings False
appAccess.DoCmd.RunSQL ("DELETE FROM tb_Basis_Programmgruppen")
appAccess.DoCmd.SetWarnings True
appAccess.DoCmd.TransferSpreadsheet acImportDelim, , "tb_Basis_Programmgruppen", _
TB_Programmgr, True
' Laden Tabelle "Planungspositionen"
appAccess.DoCmd.SetWarnings False
appAccess.DoCmd.RunSQL ("DELETE FROM tb_Basis_Planungspositionen")
appAccess.DoCmd.SetWarnings True
appAccess.DoCmd.TransferSpreadsheet acImportDelim, , "tb_Basis_Planungspositionen", _
TB_Planungspos, True
' Laden Tabelle "Faktor"
appAccess.DoCmd.SetWarnings False
appAccess.DoCmd.RunSQL ("DELETE FROM tb_Basis_Faktor")
appAccess.DoCmd.SetWarnings True
appAccess.DoCmd.TransferSpreadsheet acImportDelim, , "tb_Basis_Faktor", TB_Faktor, True
' Laden Tabelle "Bestandsarten"
appAccess.DoCmd.SetWarnings False
appAccess.DoCmd.RunSQL ("DELETE FROM tb_Basis_Bestandsarten")
appAccess.DoCmd.SetWarnings True
appAccess.DoCmd.TransferSpreadsheet acImportDelim, , "tb_Basis_Bestandsarten", _
TB_Bestandsart, True
' Laden Tabelle "Umsatzkosten"
appAccess.DoCmd.SetWarnings False
appAccess.DoCmd.RunSQL ("DELETE FROM tb_Umsatzkosten")
appAccess.DoCmd.SetWarnings True
appAccess.DoCmd.TransferSpreadsheet acImportDelim, , "tb_Umsatzkosten", Umsatzkosten, _
True
' Laden Tabelle "Aufteilung Planungspositionen"
appAccess.DoCmd.SetWarnings False
appAccess.DoCmd.RunSQL ("DELETE FROM tb_Aufteilung_Planungspositionen")
appAccess.DoCmd.SetWarnings True
appAccess.DoCmd.TransferSpreadsheet acImportDelim, , "tb_Aufteilung_Planungspositionen", _
AufteilungPLPos, True
' Laden Tabelle "Aufteilung Programmgruppen"
appAccess.DoCmd.SetWarnings False
appAccess.DoCmd.RunSQL ("DELETE FROM tb_Aufteilung_Programmgruppen")
appAccess.DoCmd.SetWarnings True
appAccess.DoCmd.TransferSpreadsheet acImportDelim, , "tb_Aufteilung_Programmgruppen", _
AufteilungProg, True
' Laden Tabelle "Reichweiten"
appAccess.DoCmd.SetWarnings False
appAccess.DoCmd.RunSQL ("DELETE FROM tb_Reichweiten")
appAccess.DoCmd.SetWarnings True
appAccess.DoCmd.TransferSpreadsheet acImportDelim, , "tb_Reichweiten", Reichweiten, _
True
' Abfrage starten "Aufteilung nach Programmen"
appAccess.DoCmd.SetWarnings False
appAccess.DoCmd.Hourglass True
appAccess.DoCmd.OpenQuery "abUmsatzkostenAufteilungProgramm"
appAccess.DoCmd.SetWarnings True
appAccess.DoCmd.Hourglass False
' Abfrage starten "Aufteilung nach Planungspositionen"
appAccess.DoCmd.SetWarnings False
appAccess.DoCmd.Hourglass True
appAccess.DoCmd.OpenQuery "abUmsatzkostenAufteilungPlanungsposition"
appAccess.DoCmd.SetWarnings True
appAccess.DoCmd.Hourglass False
' Abfrage starten "Umsatzkosten je Bestandsart"
appAccess.DoCmd.SetWarnings False
appAccess.DoCmd.Hourglass True
appAccess.DoCmd.OpenQuery "abUmsatzkostenjeBestandsart"
appAccess.DoCmd.SetWarnings True
appAccess.DoCmd.Hourglass False
' Abfrage starten "Bestand Basisdaten"
appAccess.DoCmd.SetWarnings False
appAccess.DoCmd.Hourglass True
appAccess.DoCmd.OpenQuery "abBestandBasisdaten"
appAccess.DoCmd.SetWarnings True
appAccess.DoCmd.Hourglass False
' Export Excel
appAccess.DoCmd.TransferSpreadsheet acExport, 8, "abBestandBasisdaten", "M:\Access1. _
xlsx", True, ""
End Sub
Ich hab es mal versucht einfach ins M Laufwerk zu speichern. Lieber wäre es mir eigentlich wenn es in meine geöffnete Exceldatei geschrieben wird. Aber beides geht nicht.
Ich bekomme immer den Fehler das eine aktualisierbare Abfrage verwendet werden muss?
Danke für die Hilfe
Gruß
Harry