Zuerst einmal möchte ich allen guten Tag sagen und danke für die Aufnahme im Forum.
Habe folgende Problem mit Access 2019
Habe ein Formular mit Mitarbeiterdaten. im Formular wird immer nur ein Datensatz angezeigt, der über ein
Kombifeld ausgewählt wird. (also ich gebe im Kombi Meier ein und es kommt der Datensatz von Meier)
Nun gibt es zu diesem Mitarbeiter mehrere Datensätze in einer Tabelle die in einem Unterformular angezeigt werden.
Das funktioniert soweit auch alles prima.
Allerdings stehe ich jetzt vor dem Problem, diese selektieren Datensätze im Endlos(unter)formular zu zählen, wenn ein bestimmter Wert in einem der Felder eines Datensatzes ist.
Konkret: in den Datensätzen des Mitarbeiters gibt es ein Datumsfeld - wenn dieser gefüllt ist dann soll der Datensatz gezählt werden.
beim =DomAnzahl Befehl habe ich das Problem das ich die Tabelle angeben muss - dann zählt er aber nicht nur die
Datumsfelder des gewählten Mitarbeiters sonder alle in der Tabelle.
Hoffe ich habe mich verständlich ausdrücken können.
Vilen lieben Dank vorab
Hallo,
mit DomAnzahl kann im 3. Abschnitt ein Kriterium (Where Klausel) angegeben werden.
Zeige mal Deine Versuche mit DomAnzahl.
PS:
Es ist sinnvoll, seine Versuche gleich zu zeigen und nicht nur auf Rückfrage.
Hallo,
Hatten wir doch gerade, finde es aber nicht wieder.
DCount finde ich in diesem Zusammenhang nicht so prickelnd, weil ich
zu dem zusätzlichen Kriterium immer auch den Filter mit angeben muss,
der durch die Verknüpfung entsteht (ID_F = ID).
Hatte das gerade. Da kann das UFo schon mit zwei Kombifeldern gefiltert
werden. Die DS im UFo haben ein Feld mit drei Zuständen, die einzeln
gezählt werden müssen.
Das würde mit/bei einem DCount zu einem ellenlangen Filter führen. Da ist
es einfacher einfach den RecordsetClone des UFo mit dem einfachen Filter
"Feld = x" zu filtern, und so ein Zählfeld nach dem anderen zu befüllen.
gruss ekkehard
Zitat von: MzKlMu am April 17, 2023, 18:05:51Hallo,
mit DomAnzahl kann im 3. Abschnitt ein Kriterium (Where Klausel) angegeben werden.
Zeige mal Deine Versuche mit DomAnzahl.
PS:
Es ist sinnvoll, seine Versuche gleich zu zeigen und nicht nur auf Rückfrage.
Danke für die antwort ...
wie gesagt ich habe keine Idee wie ich auf die Auswahl auf die Datensätze im Unterformular beschränken kann bzw. wie eine Formel diesbez. ausschauen kann.
mit diesem Befehl greife ich auf die komplette Tabelle zu =DomAnzahl("Urgenz1";"tblUrgenzen";"Urgenz1 > 0")
(mit = Anzahl(*) kann ich die Anzahl der Sätze im Unterformular anzeigen lassen aber jedoch ohne Kriterium ...
Urgenz1 ist das Datumfeld wo ich beim zählen abfrage ob es befüllt ist oder nicht .
LG Robert
Hallo,
ersetze in der Anweisung die Domäne "tblUrgenzen" durch den Namen der Abfrage, welche in den Eigenschaften des Unterformulars als Datenherkunft eingetragen ist.
Falls dort eine Selectanweisung steht, rufe die Entwurfsansicht dieser Selectanweisung durch Klick auf die drei Punkte auf und speichere diese mit einem Namen. Diesen Namen kannst Du dann als Domäne nutzen.
VG Andreas
Zitat von: andyfau am April 17, 2023, 21:18:24Hallo,
ersetze in der Anweisung die Domäne "tblUrgenzen" durch den Namen der Abfrage, welche in den Eigenschaften des Unterformulars als Datenherkunft eingetragen ist.
Falls dort eine Selectanweisung steht, rufe die Entwurfsansicht dieser Selectanweisung durch Klick auf die drei Punkte auf und speichere diese mit einem Namen. Diesen Namen kannst Du dann als Domäne nutzen.
VG Andreas
Danke für die Bemühungen ...
es ist keine Abfrage ...
und es gibt auch keine Selectanweisung.
das Unterformular verwendet direkt die Daten aus der tblUrgenzen ...... die Datensätze werden durch ein ungebundenes
Kombilfeld "gefilter" - dies wurde mit dem Assistenten erstellt..
LG Robert
Versuche dieses anzupassen.
Private Function CountUFoRecordsWithCriteria(sCriteria As String) As Integer
Dim rst As DAO.Recordset
Dim rstCount As DAO.Recordset
Dim dbe As DAO.Database
Set dbe = CurrentDb
With Me.UFoControlName.Form
Set rst = .RecordsetClone
rst.Filter = sCriteria
Set rstCount = rst.OpenRecordset
If Not rstCount.EOF Then
rstCount.MoveLast
End If
End With
CountUFoRecordsWithCriteria = rstCount.RecordCount
End_CleanUp:
On Error Resume Next
rstCount.Close
Set rstCount = Nothing
rst.Close
Set rst = Nothing
Set dbe = Nothing
End Function
Aufruf
Me.FeldFuerCount = CountUFoRecordsWithCriteria("Das passende Kriterium")
gruss ekkehard