Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Text in Abfrage zusammenfassen

Begonnen von Klaus S. aus B, Oktober 23, 2012, 15:16:55

⏪ vorheriges - nächstes ⏩

Klaus S. aus B

Hallo zusammen,

ich habe folgende (ähnliche) Tabelle


NameSchulungModul bestanden
MüllerGrundkursModul 1
MüllerGrundkursModul 2
MüllerGrundkursModul 3
MaierGrundkursModul 1
MaierGrundkursModul 3

Für einen Bericht will ich jetzt eine Abfrage erstellen, bei der ich die Ergebnisse zusammenfassen möchte. Das Ergebnis soll also folgendermaßen aussehen:

Müller    Grundkurs    Modul1, Modul2, Modul3
Maier     Grundkurs    Modul1, Modul3

Geht das? Und wenn ja, wie?

Gruß
Klaus


oma

Hallo Klaus

die Abfage kannst du so gestalten:

SELECT NachName, Schulung, ZP([NachName]) AS Zeile
FROM DeineTabelle
GROUP BY NachName, Schulung


Die benötigte Funktion ZP kopiere in ein beliebiges Moduzl deiner DB:

Public Function ZP(Feld As String) As String
strSQL = "SELECT NachName, Schulung, Modul_Bestanden FROM DeineTabelle WHERE Nachname ='" & Feld & "'" & " ORDER BY Nachname"
Set rs = DBEngine(0)(0).OpenRecordset(strSQL)

   Do While rs.EOF = False
       ZP = ZP & "  " & rs!Modul_Bestanden
       rs.MoveNext
  Loop

End Function


Gruß Oma
nichts ist fertig!

Klaus S. aus B

Hallo Oma,

Super, hat perfekt geklappt.

...kann man in die Sammel-Zeile einen Seitenumbruch einbauen?

Gruß
Klaus

MzKlMu

Hallo,
Zitat...kann man in die Sammel-Zeile einen Seitenumbruch einbauen?
nach wie vielen Einträgen?
Du müsstest einen Zähler einbauen der die Einträge zählt und dann Chr(13) und Chr(10) addieren (&).
Gruß Klaus

Klaus S. aus B

Sorry,

ich meinte natürlich einen Zeilenumbruch.

Es sieht im Schulungs-Zertifikat hübscher aus, wenn die einzelnen Schulungen je in einer Zeile stehen.

Gruß
klaus

MzKlMu

#6
Hallo,
dann ist das Vorhaben eh überlüssig. Du willst es dann so darstellen, wie Du es schon hast, denn in der Tabelle stehen die Module ja untereinander.
Wenn Du den Bericht nach den Namen gruppierts, hast Du automatisch die Darstellung die Du jetzt per Code erreichen willst.

Der gruppierte Bericht würde dann so  aussehen:

Müller    Grundkurs    
............Modul1
............Modul2
............Modul3
Maier     Grundkurs    
............Modul1
............Modul3

Ganz automatisch.

PS:
Chr(13) und Chr(10) ist ein Zeilenumbruch.
Gruß Klaus

oma

Hallo Klaus,

mit:  
ZitatZP = ZP & "  " & rs!Modul_Bestanden & Chr(13) & Chr(10)

in der Funktion hättest du dein gewünschtes Ergebnis.
Allerdings ist das dann ein Witz, weil die Funktion die Werte aus einer Spalte in eine Zeile schreibt u. dann wieder mit einem Zeilenumbruch versieht.

Du brauchst also keine solche Funktion, sondern mache, wie schon beschrieben,  eine gruppierte Ausgabe im Bericht  !

Gruß Oma
nichts ist fertig!

Klaus S. aus B

...Ihr habt natürlich Recht.
Das war ein krasser Denkfehler von mir. :-[

Aber was Ihr mir gezeigt habt, kann ich anderweiteig gut gebrauchen.

Vielen Dank!