Access in excel: excel nicht überschreiben

hallo !

und zwar hab ich das problem, dass ich daten vom access ins excel importiere via vb und möchte nun wenn ich die daten ins excel sheet schreibe, das excel sheet nicht überschreiben mit

CODE: wbDatei.SaveAs „D:\akim\stunden\date.xls“

sondern möchte es im Excel sheet hinzufügen!

habt ihr vielleicht eine ahnung wie das funktionieren könnte?

bedanke mich im voraus!

lg sabrina

Hallo, Sabrina!

und zwar hab ich das problem, dass ich daten vom access ins
excel importiere via vb und möchte nun wenn ich die daten ins
excel sheet schreibe, das excel sheet nicht überschreiben mit

CODE: wbDatei.SaveAs „D:\akim\stunden\date.xls“

sondern möchte es im Excel sheet hinzufügen!

Was genau möchtest Du machen? Willst Du eine bestehende Datei öffnen und die Daten ans Ende der Tabelle anfügen? Sag noch mal genauer, irgendwie werde ich gerade nicht schlau…

Gruß, Manfred

nein ich habe sozusagen eine vorlage mit überschrift usw. und möchte nun nur die daten in dieses auffüllen und nicht von vb in access das excel formatieren

Hallo,

und zwar hab ich das problem, dass ich daten vom access ins

excel importiere via vb und möchte nun wenn ich die daten ins
excel sheet schreibe, das excel sheet nicht überschreiben mit

CODE: wbDatei.SaveAs „D:\akim\stunden\date.xls“

sondern möchte es im Excel sheet hinzufügen!

habt ihr vielleicht eine ahnung wie das funktionieren könnte?

ja!
Importier einen Verweis auf die Excel-Application. Dann erzeugst du ein Excel-App-object und damit kannst du fast arbeiten wie mit Excel-VBA.
Google wird dir weiterhelfen!! (Stichworte: „Verweis hinzufügen“, „Excel VBA“, „Excel Objekt erzeugen“ oder so ähnlich)

Gruß,
AlexR

Hi, Sabrina!

nein ich habe sozusagen eine vorlage mit überschrift usw. und
möchte nun nur die daten in dieses auffüllen und nicht von vb
in access das excel formatieren

Gut, die Vorlage heißt also konkret: Eine Datei. Ich nehme mal an, sie liegt unter „C:\Temp\DeineDatei.xls“. Dann nehmen wir den Code von letztens und passen ihn an:

Sub ExportNachExcel()
 Dim dbMdb As Database
 Dim recGruppen As Recordset
 Dim recPakete As Recordset

 Dim appExcel As New Excel.Application
 Dim wbDatei As Workbook
 Dim wsAusgabe As Worksheet
 Dim lngZeile As Long
 Dim lngSpalte As Long

 ' Excel-Datei anlegen
 Set wbDatei = appExcel.Workbooks.Open("C:\Temp\DeineDatei.xls")
 ' Ausgabe in erstes Sheet
 Set wsAusgabe = wbDatei.Worksheets(1)
 ' oder auch per Name:
 Set wsAusgabe = wbDatei.Worksheets("DeineVorlage")
 ' vielleicht hast Du auch alle Daten, die Du jedes Mal 
 ' nur unter die Überschrift einfügen willst (also auch alle
 ' Eingaben außer der Überschrift löschen)
 ' in diesem Fall die folgende Zeile ent-kommentieren:
 'wsAusgabe.Rows("2:65536").delete

 ' Start in erster Zeile geht nicht mehr, jetzt suchen wir nach
 ' der ersten freien Zeile?
 lngZeile = 1
 do while wsAusgabe.Cells(lngZeile,1)""
 lngZeile=lngZeile+1
 loop
 Set dbMdb = CurrentDb
 Set recGruppen = dbMdb.OpenRecordset("select \* from AP\_Gruppe order by APG\_Beschreibung")
 ' alle Gruppen durchgehen
 Do While Not recGruppen.EOF
 ' Beschreibung der Gruppe in erste Spalte schreiben
 wsAusgabe.Cells(lngZeile, 1) = recGruppen("APG\_Beschreibung")
 ' Ausgabe der Pakete ab Spalte 2 in der gleichen Zeile
 lngSpalte = 2
 ' alle Pakete der Gruppe auslesen
 Set recPakete = dbMdb.OpenRecordset("select \* from AP\_STAMM where APG\_ID=" & recGruppen("APG\_ID"))
 Do While Not recPakete.EOF
 ' Paket in zweite Spalte schreiben
 wsAusgabe.Cells(lngZeile, lngSpalte) = recPakete("AP\_Beschreibung")
 ' nächste Spalte für Pakete
 lngSpalte = lngSpalte + 1
 recPakete.MoveNext
 Loop
 ' und nächste Gruppe...
 recGruppen.MoveNext
 ' ... in nächster Zeile
 lngZeile = lngZeile + 1
 Loop

 ' Excel-Datei speichern
 wbDatei.Save 
 appExcel.Quit

End Sub

Kommst Du damit klar?

Gruß, Manfred

dankeschön für die hilfe :smile: