hallo leute!
und zwar folgendes ich möchte daten, die ich aus 2 tabellen in meiner controlling.mdb beziehe, in excel formatieren, jedoch den code in vb in access erstellen. Tabellen sind AP_STAMM und AP_Gruppen, dabei fassen die AP_Gruppen mehrere AP_STAMM Daten zusammen
z.B.:
AP_Gruppe: Testen
die dazugehörigen Arbeitspakete im AP_STAMM wären: Testen von xyz, Testen von abc usw.
Tabellenaufbau:
AP_STAMM - Attribute:
APG_ID (AP_Gruppe ID)
AP_ID
AP_Beschreibung
AP_Gruppen - Attribute:
APG_ID
APG_Beschreibung
ich stell mir das wahrscheinlich zu einfach vor, aber gibt es vielleicht so eine ähnliche lösung wie ich es mir vorstelle:
WHILE (solang bis keine Arbeitspaketgruppen mehr existieren)
Excel.Cells(X1,Y1) = "SELECT APG_Beschreibung FROM APG_ID WHERE APG_ID=Zählvariable + 1 'Ausgabe der Gruppe
WHILE (solang bis keine Arbeitspakete mehr existieren)
Excel.Cells(X1,X zählvariable2 +1) = "SELECT AP_Beschreibung FROM AP_STAMM WHERE APG_ID=Zählvariable 'Ausgabe der Arbeitspakete zu der übergeordneten Gruppe
ich bedanke mich im vorfeld für euer bemühen
lg sabrina
Hallo, Sabrina!
ich stell mir das wahrscheinlich zu einfach vor, aber gibt es
vielleicht so eine ähnliche lösung wie ich es mir vorstelle:
Nö, nicht wirklich:
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.Add
' Ausgabe in erstes Sheet
Set wsAusgabe = wbDatei.Worksheets(1)
' Start in erster Zeile
lngZeile = 1
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.SaveAs "C:\Temp\DeineDatei.xls"
appExcel.Quit
End Sub
Ist nicht wirklich fehlerrobust/-tolerant, schreibt auch immer nur in eine festverdrahtete Datei, aber das zu verschönern kann folgen… Wichtig: Du musst im VB-Editor unter „Extras“-„Verweise“ Microsoft Excel hinzufügen.
Das obige schreibt Dir dann Zeile für Zeile in die erste Spalte die Gruppenbeschreibung und in die folgenden die Paketbeschreibungen…
Gruß, Manfred