Supportnet / Forum / Datenbanken
Microsofr Access Bericht Anzahl der Gruppen bestimmen
Frage
Hallo,
ich habe über meinen Berichten mit der Anzahl(*) Funktion die Anzahl der Datensätze geschrieben.
Nun möchte ich aber gern die Anzahl der Gruppen haben.
Leider finde ich in der Microsoft Access Hilfe nichts über die Funktion Anzahl und mit probieren ging auch nichts.
Unter dieser URL:
http://www.frankn.com/Forum/thread.php?threadid=5214
fand ich einen Tipp. aber ich möchte es ja gern oben drüber schreiben.
Wer kann mir helfen ?
Gudrun
Antwort 1 von Gudrun11
Leider hat mir noch niemand geantwortet.
Ich habe also nun die Anzahl der Gruppen bestiimt indem ich vor jede Gruppe ein ungebundenes Textfeld namens "Zähler" mit Inhalt =1 geschrieben habe und am Ende des Berichtes ein Textfeld mit =[Zähler] und so steht die Anzahl der Gruppen - bei mir Personen - unter meinem Bericht. So ist es im oben angegebenen Link beschrieben.
Noch mal meine Frage: Wie kann ich die Anzahl de Gruppen im Berichtskopf angeben ??
Mit DomAnzahl irgendwie oder mit Anzahl aber wie ??
Gudrun
Ich habe also nun die Anzahl der Gruppen bestiimt indem ich vor jede Gruppe ein ungebundenes Textfeld namens "Zähler" mit Inhalt =1 geschrieben habe und am Ende des Berichtes ein Textfeld mit =[Zähler] und so steht die Anzahl der Gruppen - bei mir Personen - unter meinem Bericht. So ist es im oben angegebenen Link beschrieben.
Noch mal meine Frage: Wie kann ich die Anzahl de Gruppen im Berichtskopf angeben ??
Mit DomAnzahl irgendwie oder mit Anzahl aber wie ??
Gudrun
Antwort 2 von Teddy7
Mach eine zusätzliche Abfrage, in der Du die Gruppierung durchführst.
Im Berichtskopf machst Du ein ungebundenes Feld.
Im Berichtskopf-Ereignis "beim formatieren" füllst Du dieses Feld mit einem dcount-befehl.
Z.B. so:
Xgruppe = 0
on error resume next
Xgruppe = dcount("DeinGruppenfeld","DeinAbfragename")
on error goto 0
Die on error - Befehle dienen nur dazu den Fehler, daß kein Datensatz gefunden wurde abzufangen.
Übrigens: der dcount kann auch um Selektionskriterien ergänzt werden. Die Beschreibung dazu findet sich unter domAnzahl in der AccessHilfe
Gruß
Teddy
Im Berichtskopf machst Du ein ungebundenes Feld.
Im Berichtskopf-Ereignis "beim formatieren" füllst Du dieses Feld mit einem dcount-befehl.
Z.B. so:
Xgruppe = 0
on error resume next
Xgruppe = dcount("DeinGruppenfeld","DeinAbfragename")
on error goto 0
Die on error - Befehle dienen nur dazu den Fehler, daß kein Datensatz gefunden wurde abzufangen.
Übrigens: der dcount kann auch um Selektionskriterien ergänzt werden. Die Beschreibung dazu findet sich unter domAnzahl in der AccessHilfe
Gruß
Teddy
Antwort 3 von Gudrun11
Danke
die Funktion und das Feld Xgruppe habe ich schon mal eingeführt, voresrts mit dem Tabellennamen anstelle von Abfrage.
Es funktioniert soweit. Nur habe ich meine Gruppierungen bisher immer im Bericht gemacht mit Gruppenkopf usw.
Wie kann ich eine Gruppierung in der Abfrage machen ?
Gudrun
die Funktion und das Feld Xgruppe habe ich schon mal eingeführt, voresrts mit dem Tabellennamen anstelle von Abfrage.
Es funktioniert soweit. Nur habe ich meine Gruppierungen bisher immer im Bericht gemacht mit Gruppenkopf usw.
Wie kann ich eine Gruppierung in der Abfrage machen ?
Gudrun
Antwort 4 von Teddy7
In der Abfrage dürfen nur die zu gruppierenden Felder stehen - und ggf. Felder die pro Gruppe addiert werden sollen (oder eine andere Funktion).
Bei Erstellen der Abfrage bietet der Assistent einen Knopf "Zusammenfassen" oder so ähnlich an - allerdings nur, wenn die Abfrage ein numerisches Feld enthält, das addiert werden könnte.
/////////
Wenn die Abfrage schon existiert kann man im Entwurfsbild auf das Icon mit dem Summenzeichen klicken.
Gruß
Teddy
Bei Erstellen der Abfrage bietet der Assistent einen Knopf "Zusammenfassen" oder so ähnlich an - allerdings nur, wenn die Abfrage ein numerisches Feld enthält, das addiert werden könnte.
/////////
Wenn die Abfrage schon existiert kann man im Entwurfsbild auf das Icon mit dem Summenzeichen klicken.
Gruß
Teddy
Antwort 5 von Gudrun11
Danke, jetzt hab ich´s.
Ich habe eine 1:n Beziehung und jetzt habe ich in die Abfrage nur die Personalnummer aus der n-Tabelle geschrieben die mehrfach vorkam und diese gruppiert. Nun geht es.
Übrigens kann ich nun auch direkt im Berichtskopf in ein Feld schreiben:
=DomAnzahl("*";"MeineAbfrage")
Danke Gudrun
Ich habe eine 1:n Beziehung und jetzt habe ich in die Abfrage nur die Personalnummer aus der n-Tabelle geschrieben die mehrfach vorkam und diese gruppiert. Nun geht es.
Übrigens kann ich nun auch direkt im Berichtskopf in ein Feld schreiben:
=DomAnzahl("*";"MeineAbfrage")
Danke Gudrun
Antwort 6 von Gudrun11
Hallo,
es ging zwar so mit der Abfrage, aber zufrieden bin ich nicht.
Ich wende ja nun Filter an auf die Berichte
von außen in einem Formular durch eine Kombibox wählbar und dann stimmt die Anzahl wieder nicht mehr, weil ja in der Extra Abfrage die Gesamtanzahl steht un nicht die durch den Filter reduzierte.
Ich werd´s wohl aufgeben und die Anzahl unter den Bericht schreiben, wenn es sich um Gruppierungen handelt.
Gudrun.
es ging zwar so mit der Abfrage, aber zufrieden bin ich nicht.
Ich wende ja nun Filter an auf die Berichte
von außen in einem Formular durch eine Kombibox wählbar und dann stimmt die Anzahl wieder nicht mehr, weil ja in der Extra Abfrage die Gesamtanzahl steht un nicht die durch den Filter reduzierte.
Ich werd´s wohl aufgeben und die Anzahl unter den Bericht schreiben, wenn es sich um Gruppierungen handelt.
Gudrun.
Antwort 7 von Teddy7
wo ist das Problem ? Du kannst den domanzahl auch durch Angabe von Selektionskriterien einschränken.
Wenn das Formular geöffnet bleibt kannst Du im Berichtskopf direkt auf die Formularfelder zugreifen und Dir - genau wie bei der einschränkung des Berichts - das Kriterium zusammenstellen.
Du kannst aber auch eine globale Variable anlegen
(im Modul1 mit public ppkriterium as string)
und vor dem Aufruf des Berichts das dazu ermittelte Kriterium in dieser globalen Variable parken.
Im Berichtskopf kannst Du dann wieder auf diese globale Variable zugreifen und sie in domAnzahl verwenden.
Gruß
Teddy
Wenn das Formular geöffnet bleibt kannst Du im Berichtskopf direkt auf die Formularfelder zugreifen und Dir - genau wie bei der einschränkung des Berichts - das Kriterium zusammenstellen.
Du kannst aber auch eine globale Variable anlegen
(im Modul1 mit public ppkriterium as string)
und vor dem Aufruf des Berichts das dazu ermittelte Kriterium in dieser globalen Variable parken.
Im Berichtskopf kannst Du dann wieder auf diese globale Variable zugreifen und sie in domAnzahl verwenden.
Gruß
Teddy

