collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 54
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13971
  • stats Beiträge insgesamt: 66518
  • stats Themen insgesamt: 8970
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Abfrage in vorhandene Excel-Datei anfügen  (Gelesen 3066 mal)

Offline BananaDealer

  • Access-User
  • *
  • Beiträge: 55
Abfrage in vorhandene Excel-Datei anfügen
« am: Dezember 11, 2017, 14:46:16 »
Hallo Leute,

ich möchte folgendes mit einem Access-Export nach Excel erwirken:

1) Die Ergebnisse von maximal drei separaten Abfragen sollen in ein Tabellenblatt als drei verschiedene Tabellen (Formatierung soll mit exportiert werden) eingefügt werden. Es gibt drei verschiedene Messungen und diese sollen einfach ohne weitere Anforderungen nebeneinander im selben Blatt erscheinen. Die Formatierung ist zum einen wichtig für das Layout, zum anderen werden sonst die IDs der Eigenschaften und nicht die Eigenschaften (als Text) selbst exportiert.

2) Jetzt sollen nochmals zwei verschiedene Abfragen in ein anderes Tabellenblatt eingefügt werden. Wieder als separate Tabellen nebeneinander und dem Export der Formatierung.

Diese Exceldatei ist quasi zum Auswerten der in Access vorbereiteten Datensätze. Für jede Auswertung wird aber wieder eine Blanco-Datei genutzt, sprich der Export muss nicht über mehrere Auswertungen gemacht werden. Nach dem Ablauf nach Punkt 1) und 2) ist die Auswertung immer abgeschlossen.

Nach Möglichkeit eine einfache, wenn auch nicht robusteste, Lösung gesucht ::)

Danke und viele Grüße
BananaDealer
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1788
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #1 am: Dezember 11, 2017, 15:52:12 »
Hallo,
Hast du dich schon mal mit der Methode "DoCmd.TransferSpreadsheet" auseinandergesetzt?
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 
Folgende Mitglieder bedankten sich: BananaDealer

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 126
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #2 am: Dezember 11, 2017, 19:20:03 »
Hallo,
du solltest den Export zunächst manuell testen.
Ein "formatierter" Export (Option Formatierung) ist allerdings nicht in verschiedene Tabellen (einer Mappe) möglich sondern nur jeweils in eine neue Mappe.
Gruß Steffen
 

Offline BananaDealer

  • Access-User
  • *
  • Beiträge: 55
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #3 am: Dezember 12, 2017, 14:03:57 »
Hallo,
Hast du dich schon mal mit der Methode "DoCmd.TransferSpreadsheet" auseinandergesetzt?
gruss ekkehard
Bis jetzt noch nicht. Ich hab den Export vor allem mit dem Assistenten gemacht und in anderen Foren aber noch kein passenden Code gefunden für einen "selbst" angefertigten Export.
 

Offline BananaDealer

  • Access-User
  • *
  • Beiträge: 55
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #4 am: Dezember 12, 2017, 14:05:39 »
Hallo,
du solltest den Export zunächst manuell testen.
Ein "formatierter" Export (Option Formatierung) ist allerdings nicht in verschiedene Tabellen (einer Mappe) möglich sondern nur jeweils in eine neue Mappe.

Welchen Export manuell testen? Per Assistent oder mit der Methode von Beaker (obige Antwort)?
 

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 126
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #5 am: Dezember 12, 2017, 14:26:41 »
Hallo,
"manuell" bedeutet (für mich) ohne Code, also die Nutzung des Assistenten.

Btw:
"DoCmd.TransferSpreadsheet" entspricht dem unformatierten Export
"Docmd.OutPutTo"  entspricht dem formatierten Export (Export von Daten mit Formatierung und Layout)
Gruß Steffen
 
Folgende Mitglieder bedankten sich: BananaDealer

Offline BananaDealer

  • Access-User
  • *
  • Beiträge: 55
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #6 am: Dezember 13, 2017, 09:02:58 »
Hallo,
"manuell" bedeutet (für mich) ohne Code, also die Nutzung des Assistenten.

Btw:
"DoCmd.TransferSpreadsheet" entspricht dem unformatierten Export
"Docmd.OutPutTo"  entspricht dem formatierten Export (Export von Daten mit Formatierung und Layout)

Super Danke Dir/Euch schon einmal für die Antworten! Die Methode für den formatierten Export kann ich im Code frei nutzen? Oder ist hier auch die Beschränkung, dass ein formatierter Export eine neue Mappe erzeugt? Könntet ihr mir für den Code zum formatierten Export etwas Hilfestellung geben? Wie und wo ich den anlege (als Makro?)
Vielen Dank!
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1242
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #7 am: Dezember 13, 2017, 09:49:11 »
Das Nebeneinander von Exporten in ein Excel-Blatt beherrscht Access nicht. Entweder versuchst Du Dich Excel-seitig über das Menü Daten daran oder Du automatisierst das Geschehen aus Excel oder Access heraus - siehe Range.CopyFromRecordset-Methode (Excel)
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: BananaDealer

Offline BananaDealer

  • Access-User
  • *
  • Beiträge: 55
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #8 am: Dezember 13, 2017, 10:15:36 »
Das Nebeneinander von Exporten in ein Excel-Blatt beherrscht Access nicht. Entweder versuchst Du Dich Excel-seitig über das Menü Daten daran oder Du automatisierst das Geschehen aus Excel oder Access heraus - siehe Range.CopyFromRecordset-Methode (Excel)

Alles klar, dann weiß ich Bescheid. Das Ganze über einen excelseitigen Import zu steuern, wird die beste Lösung sein. Danke!
 

Offline BananaDealer

  • Access-User
  • *
  • Beiträge: 55
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #9 am: Dezember 13, 2017, 11:31:24 »
Hallo,

dies ist der der Code bis jetzt (auch aus einem Forum, etwas angepasst):

Sub AbfrageAccess()
   
   Dim dbe As Object    ' As DAO.DBEngine
   Dim db  As Object    ' As DAO.Database      Soll als Kommentar bleiben?
  Dim rs As Object     ' AS DAO.Recordset
   Dim dbfile As String
   Dim sSQL As String
   Dim i As String

   dbfile = "\Pfad der Access Datenbank"
   'Set dbe = CreateObject("DAO.DBEngine.36")   ' Acc2000-2003
   Set dbe = CreateObject("DAO.DBEngine.120")   ' ab Acc2007
   Set db = dbe.OpenDatabase(dbfile)

   sSQL = "SELECT FeldX, FeldY FROM TabelleZ WHERE FeldX > 123" Wenn ich eine fertige Abfrage habe, brauche ich diese Zeile? Was ist eintzutragen?
   'Set rs = db.Openrecordset(sSQL)                      ' Verwendung SQL-Anweisung
   Set rs = db.Openrecordset("Meine Abfrage")   ' Verwendung gespeicherte Abfrage/Tabelle

   ' Feldnamen übernehmen
   For i = 0 To rs.Fields.Count - 1
      ' für ActiveSheet kann man auch etwas Intelligenteres einsetzen
      ActiveSheet.cells(1, i + 1) = rs.Fields(i).name
   Next

   ' Inhalt (gesamtes Recordset) übernehmen
   ActiveSheet.cells(2, 1).CopyFromRecordset rs Hier dann das gewünschte Tabellenblatt und Bereich eintragen

   rs.Close
   db.Close
   Set rs = Nothing
   Set db = Nothing
   Set dbe = Nothing
   
End Sub

Die Abfrage selber hat in Access eine Parametereingabe. Wird dieses durch das Makro in Excel normal aufgerufen?

Problem zur Zeit: Ich bekomme den Fehler Typen unverträglich mit gelber Markierung in der ersten Zeile.

Vielen Dank!
 

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 889
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #10 am: Dezember 13, 2017, 12:15:43 »
Der gezeigte Code wäre geeignet, aus Excel heraus einen Import aus einer Accessdatenbank vorzunehmen. Oben wolltest Du aber aus Access heraus exportieren.
Mit freundlichem Glück Auf!

Eberhard
 

Offline BananaDealer

  • Access-User
  • *
  • Beiträge: 55
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #11 am: Dezember 13, 2017, 12:26:48 »
Der gezeigte Code wäre geeignet, aus Excel heraus einen Import aus einer Accessdatenbank vorzunehmen. Oben wolltest Du aber aus Access heraus exportieren.

Genau ich habe mich nun umentschieden den Import in Excel zu machen, da dies einfacher ist (siehe Antwort von mir vor dem Code).
Es gibt die Möglichkeit in Excel über Daten -> Aus anderen Quellen -> MS Query die Abfrage zu importieren. Leider braucht die Abfrage in Access noch Parameter, die eingegeben werden müssen. Dies erzeugt im Excel-Import einen Fehler (Dass halt die Parameter noch fehlen). Ist dies zu beheben? Gerne auch sonst per VBA und ohne Assistenten.
 

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 889
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #12 am: Dezember 13, 2017, 13:27:02 »
Zitat
da dies einfacher ist
Ich würde behaupten, es ist nicht komplexer und nicht einfacher. MS Query ist auch nur ein Assistent zum Erzeugen von Abfragen/SQL-Anweisungen, aber mit bescheidenen Möglichkeiten.
Der neue Star ab Excel 2010 ist eh Power Query. Ob der aber mit einfachen Mitteln mit Parametern umgehen kann, weiß ich nicht.

Zu den Fragen:
- Kommentare sind für jene wichtig, die den Code nicht als solchen lesen können.
- Bei einer gespeicherten Abfrage muss man nicht explizit auf deren SQL-Anweisung eingehen.
- Bei Parameterabfragen muss man auch die Parameter geeignet übergeben, siehe z.B. Parameterabfrage per VBA öffnen
Zitat
Fehler Typen unverträglich mit gelber Markierung in der ersten Zeile
Das kann ich mir bei der folgenden Zeile nicht vorstellen:
Dim dbe As Object
Mit freundlichem Glück Auf!

Eberhard
 
Folgende Mitglieder bedankten sich: BananaDealer

Offline BananaDealer

  • Access-User
  • *
  • Beiträge: 55
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #13 am: Dezember 13, 2017, 13:31:32 »
Ich meinte gelbe Markierung in der Sub-Zeile. Erste Zeile war etwas verwirrend, entschuldige ::)
Ich hab verschiedene Typen für die Variablen durchprobiert und bekommen entweder die Meldung, dass die Typen unverträglich oder nicht bekannt sind. Sprich As Object, As DAO.Recordset, As DAO.DBEngine, As DAO.Database und As Variant funktionieren nicht.

Das Vorgehen zu den Parametern schaue ich mir mal an. Danke!
 

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 889
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #14 am: Dezember 13, 2017, 13:39:29 »
As Object ... sollte bei Objekten immer funktionieren (=> Late Binding)
As DAO.DBEngine u.ä.: Wenn ich unmittelbar eine externe Bibliothek verwende (=> Early Binding), muss vorher auch ein Verweis darauf gesetzt werden, sonst ist selbstverständlich alles daraus unbekannt.
Mit freundlichem Glück Auf!

Eberhard