Hallo zusammen,
ich habe wieder mal ein Problem, mit dem ich nicht weiterkomme.
Wie formuliere ich diese Abfrage? Ich habe in einer Tabelle1 ein Statusfeld (Typ Long) nun möchte ich die Summe ermitteln in wie vielen Datensätzen im Statusfeld der Status den Wert 3 hat und dieses Ergebnis in die Tabelle2 ins Feld Ergebnis (Typ Long) eintragen. Geht das in einer Abfrage?
rs= OpenRecordset("Select Status .... Where Status = 3")
rs!Ergebnis= ??
rs.Update
Gruß Dieter
Wenn ich mal wieder nix falsch verstanden habe dann sollen alle status 3 gezählt werden?
SELECT Count(Status ) AS AnzahlvonStatus ... GROUP BY Status HAVING (((Status)=3));
Aber evt reicht dir ja auch nur
dim c as long
c = DCount("[Status]", "Name der Tabelle 1", "[Status]=3")
aba ich glaube du meinst das hier:
dim sSQL as string
sSQL = "INSERT INTO Tabelle2 ( ergebnis ) SELECT Count(Status) AS AnzahlvonStatus FROM Tabelle1 " & _
"GROUP BY Status HAVING (((Status)=3));
docmd.runSQL(sSQL)
Genau Lumbumba,
rs= OpenRecordset("SELECT Count(Status ) AS AnzahlvonStatus FROM Tabelle1 GROUP BY Status HAVING (((Status)=3))");
Ist die Syntax so richtig ?
Warum diese 3 Klammern bei HAVING (((Status)=3)) und kann ich Tabelle2 nicht gleich mit öffnen um im Datensatz (Feld ID) ins Feld Ergebnis das AnzahlvonStatus einzutragen?
Viele Fragen ich weis.
Danke und Gruß Dieter
Hallo,
eigentlich reicht der Vorschlag von lumbumba völlig aus.
Abgewandelt als Steuerelementinhalt:
= DomAnzahl("[Status]"; "Name der Tabelle 1"; "[Status]=3")
In einem Formular z.B.
Das Speichern in der Tabelle ist nicht notwendig, ich halte es sogar für falsch. Denn immer wenn sich was ändert muss Du dafür sorgen, dass das feld in der Tabelle aktuell ist. Und das könnte schief gehen. Dann stimmt die Tabelle nicht. Solche Sachen werden bei Bedarf wie gezeigt berechnet, aber nicht gespeichert.
Danke ihr beiden damit komm ich nun klar.
Gruß Dieter