Hallo zusammen,
ich habe folgende (ähnliche) Tabelle
Name | Schulung | Modul bestanden |
| Müller | Grundkurs | Modul 1 |
| Müller | Grundkurs | Modul 2 |
| Müller | Grundkurs | Modul 3 |
| Maier | Grundkurs | Modul 1 |
| Maier | Grundkurs | Modul 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
Hallo,
siehe:
http://www.dbwiki.net/wiki/VBA_Tipp:_Liste_per_SQL_aufbauen
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
Hallo Oma,
Super, hat perfekt geklappt.
...kann man in die Sammel-Zeile einen Seitenumbruch einbauen?
Gruß
Klaus
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 (&).
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
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.
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
...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!