Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: itaflo am Februar 28, 2019, 07:12:49

Titel: Access Export in Excel
Beitrag von: itaflo am Februar 28, 2019, 07:12:49
Hallo,

besteht die Möglichkeit exportierte werte aus Access in einer Excel untereinander zu kopieren unter der Voraussetzung das es immer die selbe Excel liste ist?

über die Export Funktion lässt sich lediglich immer nur eine neue Datei erstellen.

Gruß
Titel: Re: Access Export in Excel
Beitrag von: ebs17 am Februar 28, 2019, 08:27:11
Natürlich.
Du kannst bspw. nach dem Stichwort CopyFromRecordset recherchieren.
Titel: Re: Access Export in Excel
Beitrag von: itaflo am Februar 28, 2019, 09:51:43
Hilft mir leider nicht weiter weil man hier nur immer wieder eine Excel liste öffnet
und nicht eine bestimmte Excel Datei füttert.
Titel: Re: Access Export in Excel
Beitrag von: ebs17 am Februar 28, 2019, 10:35:49
Zitatweil man hier nur immer wieder eine Excel liste öffnet ...
Wenn Du aussagen willst, Du hättest ALLES dazu gesehen, hast Du Verwendung und Ausführung nicht verstanden.
Titel: Re: Access Export in Excel
Beitrag von: itaflo am Februar 28, 2019, 11:00:14
Ich habe mich falsch ausgedrückt...

ich möchte nicht, dass eine neue Excel Liste erstellt wird sondern eine bestehende Excel Liste die bereits existiert gefüttert wird.

Und bei jeden ausführen die neuen Daten in die bereits existierende Liste unter den alten Daten kopiert wird.
Titel: Re: Access Export in Excel
Beitrag von: redithebat am Februar 28, 2019, 12:41:44
Hallo
Meine Lösung ist zwar speziell aber falls du sonst nicht's hast könnte es dir ja helfen.

Bei jedem Export kannst du die Daten aus dem Excel importiere, die neuen Daten unten anfügen und die neue Liste als Excel exportieren. Der Export kann dann die alte Datei überschreiben.

Damit erhälst du sicherlich das gewünschte Resultat, einfach mit Umwegen. ;-)

Gruss
Redi
Titel: Re: Access Export in Excel
Beitrag von: datekk am Februar 28, 2019, 14:24:05
Deine gesuchte Funktionalität lässt sich einfach herstellen. Die Jet-Engine von Access erlaubt nicht nur den Zugriff auf Tabellen in Datenbanken, sondern auch auf Excel Tabellen. Beachte, dass es sich um eine Excel Datei im Datenformat 97-2003 handeln sollte - also mit der Endung .xls

Um die folgenden Listings verwenden zu können, musst Du dem VBA Editor noch einen Verweis zufügen. Klicke im Editor oben im Menü auf 'Extras' / 'Verweise...' und aktiviere den Verweis "Microsoft ActiveX Data Objects 6.1 Library".

Die Funktion ExcelRecordsetHolen läd die gewünschte Datei und erstellt und übergibt ein ADODB Recordset. Dieses lässt sich wie jedes gebundene Recordset vollständig bearbeiten.




Public Function ExcelRecordsetHolen(sql as String) As ADODB.Recordset

    Dim exCon As New ADODB.Connection
    Dim exrcs As New ADODB.Recordset
   
    With exCon
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Extended Properties").Value = "Excel 8.0"
        .Open "C:\PfadzurDatei\Ornder\datei.xls"

    End With
   
    With exrcs
   
        .Source = sql
        .CursorLocation = adUseClient
        .CursorType = adOpenKeyset
        .ActiveConnection = exCon
        .LockType = adLockOptimistic
        .Open
   
    End With
   
    Set ExcelRecordsetHolen = exrcs
    Set exrcs = Nothing
   
End Function



Mit dieser Sub rufst Du das Ganze auf. Diese Sub holt also das Recordset und fügt einen Eintrag in der ersten Spalte hinzu. Dann werden alle Einträge in dieser Spalte im Direktfenster ausgespukt. Hier kannst Du sehen, dass tatsächlich ein neuer Eintrag den bisherigen zugefügt worden ist. Ein Speichern der Tabelle ist nicht erforderlich, da die Änderungen sofort Live in die Tabelle geschrieben werden.



Private Sub TesteExcelHolen()

    Dim exrcs As ADODB.Recordset
   
    Set exrcs = ExcelRecordsetHolen("Select * From [Tabelle1$]")
   
    Debug.Print exrcs.RecordCount
   
    exrcs.AddNew
    exrcs.Fields(0) = "Neuer Eintrag"

   
    exrcs.MoveFirst
   
       
    Do Until exrcs.EOF
   
        Debug.Print exrcs.Fields(0)
        exrcs.MoveNext
    Loop

End Sub

Titel: Re: Access Export in Excel
Beitrag von: Milvus am Februar 28, 2019, 16:19:47
Also, ich mache sowas über folgenden Weg:

Per OLE in Access Excel einbinden (am besten setzt Du direkte Verweise in die Excel Bib).
Dann hangelst Du dich durch bis zum Arbeitsblatt:

dim oExcelApp As Excel.Application      'Ziel-Applikation
dim oExcelWB As Excel.Workbook          'Ziel-Mappe
Dim ws As Excel.Worksheet

Set oExcelApp = New Excel.Application
Set oExcelWB = oExcelApp.Workbooks.Open(VollständigerNameMitPfad)
Set ws = oExcelWB.Worksheets(Tabellenblattname)

Dann ermittelst Du die letzte Zeile (Google mal danach, gibts verschiedne Möglichkeiten)

Dann gehst du über das WS.Range(ws.cells(x1,y1), ws.cells(x2,y2)).CopyFromRecordset DeinRecordset


Zum Beispiel
Titel: Re: Access Export in Excel
Beitrag von: itaflo am März 05, 2019, 12:00:56
per OLE hab ich das noch nie versucht

ehrlich gesagt hab ich auch keine Ahnung wie das gehen soll :(
Titel: Re: Access Export in Excel
Beitrag von: ebs17 am März 05, 2019, 12:24:21
Zitatehrlich gesagt hab ich auch keine Ahnung wie das gehen soll
Wenn Du keinen von den obigen Vorschlägen umsetzen willst oder kannst, könntest Du hier ein ernsthaftes Angebot machen: Job-Börse (https://www.access-o-mania.de/forum/index.php?board=17.0)
Titel: Re: Access Export in Excel
Beitrag von: itaflo am März 06, 2019, 11:30:44
Danke für die nette Antwort

ich habe die Frage nicht umsonst gestellt! wenn ich wüsste wie das geht hätte ich nicht gefragt du Witzbold.

Aber danke trotzdem.
Titel: Re: Access Export in Excel
Beitrag von: Lachtaube am März 06, 2019, 13:48:59
Hallo,

auf Excel-Dateien kannst Du mit SQL zugreifen, wobei Anfüge-, Aktualisierungs- Tabellenerstellungs- und Auswahlabfragen möglich sind. D.h., Du kannst eine Vereinigungsabfrage erstellen, diese in eine Anfüge- oder Tabellenerstellungsabfrage umwandeln und ausführen.
Titel: Re: Access Export in Excel
Beitrag von: Milvus am März 06, 2019, 18:18:45
Zitat von: itaflo am März 05, 2019, 12:00:56
per OLE hab ich das noch nie versucht

ehrlich gesagt hab ich auch keine Ahnung wie das gehen soll :(

Hört sich wilder an als es ist.

Versuche es einfach mal. Noch mal. Der Vorteil von Access liegt in der COM-Schnittstelle, d.h. Du kannst locker auf andere Office-Applikationen wie z.B. Excel oder auch Word, PP, sonstwas zugreifen.

Warum das nicht nutzen?

Vorgehen: 1. Einbinden von Excel im VBA-Verweis, dann steht Dir die Intellisense zur Verfügung.

Wenn Du das nicht schaffst, ... falsches Forum?