Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Eine Art ZählenWenn in einer Datenblattansicht
zurück: Balkendiagramm mit Gruppierung in Formular weiter: UFO`s aktualisieren Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
itso
Im Profil kannst Du frei den Rang ändern


Verfasst am:
07. Aug 2010, 22:43
Rufname:

Eine Art ZählenWenn in einer Datenblattansicht - Eine Art ZählenWenn in einer Datenblattansicht

Nach oben
       Version: Office 2007

Hallo,

in einer Tabelle stehen Namen mit Geburtsdaten. Nun brauche ich eine "Matrix" die mir sagt, wie alt die Person im Jan, Feb, Mrz etc ist. Ich habe nun eine Abfrage erstellt mit Name, Geburtstag und die Monate Jan-Dez, in diesen Spalten wird das Alter in Monaten über eine Formel errechnet und als U1, U3 und U6 (unter 1 Jahr, unter 3 Jahren und unter 6 Jahren) ausgegeben. Aus dieser Abfrage habe ich mir dann ein Datenblattformular erstellt.

Funktioniert alles super, allerdings brauche ich nun am Ende die Anzahl der U1, U3 und U6. In Excel gibt es ja die ZählenWenn Funktion, aber wie kann ich das in Access lösen? Hat irgendjemand eine Idee?

Gruß



form.png
 Beschreibung:
 Dateigröße:  57.8 KB
 Angeschaut:  368 mal

form.png


derArb
getting better


Verfasst am:
08. Aug 2010, 19:29
Rufname: derArb
Wohnort: Berlin


AW: Eine Art ZählenWenn in einer Datenblattansicht - AW: Eine Art ZählenWenn in einer Datenblattansicht

Nach oben
       Version: Office 2007

Hallo,

wozu brauchst Du das monatlich sich verändernde Alter?
gib doch mal Dein Datenbank Modell oder zumindest die Idee dazu bekannt.
MfG
derArb

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.
itso
Im Profil kannst Du frei den Rang ändern


Verfasst am:
09. Aug 2010, 02:55
Rufname:

Re: AW: Eine Art ZählenWenn in einer Datenblattansicht - Re: AW: Eine Art ZählenWenn in einer Datenblattansicht

Nach oben
       Version: Office 2007

derArb - 08. Aug 2010, 19:29 hat folgendes geschrieben:
wozu brauchst Du das monatlich sich verändernde Alter?
Wird in einer Verwaltungsdatenbank für Kinderkrippen und -gärten gebraucht. Frankfurt fördert z.B. die unter 1 jährigen mit höheren Sätzen als es bei den unter 3 jährigen ist. Auch gibt es noch einmal weniger Geld bei den über 3 jährige. Diese Matrix wird dann auch beim Stadtschulamt im Rahmen einer Endabrechnung eingereicht, allerdings mit den Summen pro Monat.

Die Kita braucht aber die Namen pro Monat, da z.B. ein Kind was 3 Jahre geworden ist nicht mehr in der Krippe sein dürfte.

Ich hoffe ich konnte deine Frage beantworten. Ansonsten hat jemand ne lösung? Mir fällt nur ein ein Formular mit zwei Unterformularen zu erstellen und im oberen die Matrix und unten eine Summenabfrage. Allerdings ist es mit der Ausrichtung bischen unschön, wenn man die Spaltenbreite ändert.
Willi Wipp
Moderator


Verfasst am:
09. Aug 2010, 04:08
Rufname:
Wohnort: Raum Wiesbaden

Re: Eine Art ZählenWenn in einer Datenblattansicht - Re: Eine Art ZählenWenn in einer Datenblattansicht

Nach oben
       Version: Office 2007

Hi itso,

wie genau sieht Dein DB-Modell dazu aus?
Verwendest Du eine Kreuztabellen-Abfrage fuer die gezeigte Darstellung?
Was ist dann der SQL-Code dieser Abfrage?

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
itso
Im Profil kannst Du frei den Rang ändern


Verfasst am:
09. Aug 2010, 10:59
Rufname:


Re: Eine Art ZählenWenn in einer Datenblattansicht - Re: Eine Art ZählenWenn in einer Datenblattansicht

Nach oben
       Version: Office 2007

Willi Wipp - 09. Aug 2010, 04:08 hat folgendes geschrieben:

wie genau sieht Dein DB-Modell dazu aus?
Verwendest Du eine Kreuztabellen-Abfrage fuer die gezeigte Darstellung?
Was ist dann der SQL-Code dieser Abfrage?


Es handelt sich um eine ganz normale Tabelle mit Vorname, Name und Geburtstag. Daraus habe ich dann eine Abfrage erstellt mit Ausdrücken. Habe allerdings die Abfrage mittlerweile erweitert. Der SQL-Code sieht nun wie folgt aus

Code:
PARAMETERS [Year] Short;
SELECT Facilities.Facility, Children.FirstName AS Vorname, Children.LastName AS Nachname, Children.Birthday AS Geburtstag, ChildList.Starts, ChildList.Ends, [Year] AS Jahr, IIf(DateSerial([Year],1,1)>=[Starts] And (DateSerial([Year],1,1)<[Ends] Or IsNull([Ends])),IIf(DateDiff("m",[Birthday],DateSerial([Year],1,1))<=12,"U1",IIf(DateDiff("m",[Birthday],DateSerial([Year],1,1))<=36,"U3","U7")),"") AS Januar, IIf(DateSerial([Year],2,1)>=[Starts] And (DateSerial([Year],2,1)<[Ends] Or IsNull([Ends])),IIf(DateDiff("m",[Birthday],DateSerial([Year],2,1))<=12,"U1",IIf(DateDiff("m",[Birthday],DateSerial([Year],2,1))<=36,"U3","U7")),"") AS Februar, IIf(DateSerial([Year],3,1)>=[Starts] And (DateSerial([Year],3,1)<[Ends] Or IsNull([Ends])),IIf(DateDiff("m",[Birthday],DateSerial([Year],3,1))<=12,"U1",IIf(DateDiff("m",[Birthday],DateSerial([Year],3,1))<=36,"U3","U7")),"") AS März, IIf(DateSerial([Year],4,1)>=[Starts] And (DateSerial([Year],4,1)<[Ends] Or IsNull([Ends])),IIf(DateDiff("m",[Birthday],DateSerial([Year],4,1))<=12,"U1",IIf(DateDiff("m",[Birthday],DateSerial([Year],4,1))<=36,"U3","U7")),"") AS April, IIf(DateSerial([Year],5,1)>=[Starts] And (DateSerial([Year],5,1)<[Ends] Or IsNull([Ends])),IIf(DateDiff("m",[Birthday],DateSerial([Year],5,1))<=12,"U1",IIf(DateDiff("m",[Birthday],DateSerial([Year],5,1))<=36,"U3","U7")),"") AS Mai, IIf(DateSerial([Year],6,1)>=[Starts] And (DateSerial([Year],6,1)<[Ends] Or IsNull([Ends])),IIf(DateDiff("m",[Birthday],DateSerial([Year],6,1))<=12,"U1",IIf(DateDiff("m",[Birthday],DateSerial([Year],6,1))<=36,"U3","U7")),"") AS Juni, IIf(DateSerial([Year],7,1)>=[Starts] And (DateSerial([Year],7,1)<[Ends] Or IsNull([Ends])),IIf(DateDiff("m",[Birthday],DateSerial([Year],7,1))<=12,"U1",IIf(DateDiff("m",[Birthday],DateSerial([Year],7,1))<=36,"U3","U7")),"") AS Juli, IIf(DateSerial([Year],8,1)>=[Starts] And (DateSerial([Year],8,1)<[Ends] Or IsNull([Ends])),IIf(DateDiff("m",[Birthday],DateSerial([Year],8,1))<=12,"U1",IIf(DateDiff("m",[Birthday],DateSerial([Year],8,1))<=36,"U3","U7")),"") AS August, IIf(DateSerial([Year],9,1)>=[Starts] And (DateSerial([Year],9,1)<[Ends] Or IsNull([Ends])),IIf(DateDiff("m",[Birthday],DateSerial([Year],9,1))<=12,"U1",IIf(DateDiff("m",[Birthday],DateSerial([Year],9,1))<=36,"U3","U7")),"") AS September, IIf(DateSerial([Year],10,1)>=[Starts] And (DateSerial([Year],10,1)<[Ends] Or IsNull([Ends])),IIf(DateDiff("m",[Birthday],DateSerial([Year],10,1))<=12,"U1",IIf(DateDiff("m",[Birthday],DateSerial([Year],10,1))<=36,"U3","U7")),"") AS Oktober, IIf(DateSerial([Year],11,1)>=[Starts] And (DateSerial([Year],11,1)<[Ends] Or IsNull([Ends])),IIf(DateDiff("m",[Birthday],DateSerial([Year],11,1))<=12,"U1",IIf(DateDiff("m",[Birthday],DateSerial([Year],11,1))<=36,"U3","U7")),"") AS November, IIf(DateSerial([Year],12,1)>=[Starts] And (DateSerial([Year],12,1)<[Ends] Or IsNull([Ends])),IIf(DateDiff("m",[Birthday],DateSerial([Year],12,1))<=12,"U1",IIf(DateDiff("m",[Birthday],DateSerial([Year],12,1))<=36,"U3","U7")),"") AS Dezember
FROM Facilities INNER JOIN (Children INNER JOIN ChildList ON Children.Id = ChildList.ChildId) ON Facilities.Id = ChildList.FacilityId
ORDER BY Facilities.Facility, Children.LastName;


Ich habe nun vorerst dazu ganze wie folgt gelöst:

Mit dem Formularassistenten habe ich ein Tabellarisches Formular erstellt und im Formularfuß eine Textfeld-Matrix, die auf die Tabelle ausgerichtet ist. Beim Initialisieren des Formular lasse ich folgenden Code ausführen, welcher durch alle Zeilen geht und die Alter zusammenzählt und danach in die Textfelder einfügt.

Code:
Private Sub Form_Load()
    Dim rs As Recordset
    Dim U1(11) As Integer
    Dim U3(11) As Integer
    Dim U7(11) As Integer

    Set rs = Me.RecordsetClone
    rs.MoveFirst
    Do Until rs.EOF
        For i = 7 To 18
            If rs(i) = "U1" Then
                U1(i - 7) = U1(i - 7) + 1
            End If
            If rs(i) = "U3" Then
                U3(i - 7) = U3(i - 7) + 1
            End If
            If rs(i) = "U7" Then
                U7(i - 7) = U7(i - 7) + 1
            End If
        Next
        rs.MoveNext
    Loop
    For i = 0 To 11
        Me.Controls(("U1_" & i)) = U1(i)
        Me.Controls(("U3_" & i)) = U3(i)
        Me.Controls(("U7_" & i)) = U7(i)
        Me.Controls(("G_" & i)) = U1(i) + U3(i) + U7(i)
    Next
End Sub


Ganze funktioniert so wie ich es benötige, aber ist es praktisch so? Hat jemand vielleicht nicht noch eine bessere Idee?

Das ganze sieht jetzt so aus:

http://img514.imageshack.us/f/form1.png/
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Preisberechnung der besonderen Art, für mich nicht lösbar 5 f12 388 03. Sep 2009, 08:10
KlausMz Preisberechnung der besonderen Art, für mich nicht lösbar
Keine neuen Beiträge Access Formulare: Datenblattansicht öffnen mittels Befehlsschaltfläche 1 LTD 497 27. Jun 2008, 13:50
stargazer01 Datenblattansicht öffnen mittels Befehlsschaltfläche
Keine neuen Beiträge Access Tabellen & Abfragen: Konvertierung zweier Tabellen in eine Art Kreuztabelle 2 ProteusMST 605 10. Jun 2008, 21:00
ProteusMST Konvertierung zweier Tabellen in eine Art Kreuztabelle
Keine neuen Beiträge Access Formulare: erweiterte Mehrfachauswahl in Datenblattansicht 3 Gast 1310 31. März 2008, 16:06
Willi Wipp erweiterte Mehrfachauswahl in Datenblattansicht
Keine neuen Beiträge Access Formulare: Formular in Datenblattansicht öffnen 1 wingm@nn 2002 30. Jan 2008, 13:43
Da Oansa Formular in Datenblattansicht öffnen
Keine neuen Beiträge Access Formulare: Formular mit Filter für Datenblattansicht 5 TorstenVE 601 09. Jan 2008, 21:43
haiberm Formular mit Filter für Datenblattansicht
Keine neuen Beiträge Access Formulare: "Problem" mit Formular in Datenblattansicht 10 AbsoluterBeginner 594 24. Dez 2007, 12:01
AbsoluterBeginner "Problem" mit Formular in Datenblattansicht
Keine neuen Beiträge Access Tabellen & Abfragen: Summe bilden in der Datenblattansicht 1 Heiner9999 2625 19. Nov 2007, 12:19
Nouba Summe bilden in der Datenblattansicht
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage mit eine art Autowert-funktion ? 10 blackout 599 08. Okt 2007, 18:52
blackout Abfrage mit eine art Autowert-funktion ?
Keine neuen Beiträge Access Tabellen & Abfragen: Datenblattansicht Textfeld mit Boolschem Wert umformatieren 2 Muriel 586 23. Aug 2007, 10:08
Muriel Datenblattansicht Textfeld mit Boolschem Wert umformatieren
Keine neuen Beiträge Access Tabellen & Abfragen: Access "Tabellen" Art 1 charles-i 587 22. Jun 2007, 15:53
Mirage Access "Tabellen" Art
Keine neuen Beiträge Access Formulare: Button an Feld in Datenblattansicht 2 *Star* 393 21. Mai 2007, 09:00
achulio1 Button an Feld in Datenblattansicht
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Expression Web