PDA

Vollständige Version anzeigen : Aus Abfrage Datensätze zählen


spassmann
12.06.2001, 09:35
Hallo ihr Access-Mitstreiter da draussen heute habe ich mal ein Problem. Ich versuche nämlich aus einer Abfrage, die nicht Datenherkunft meines Formulares ist, die Datensätze zu zählen. Diese Abfrage hat als Basis eine andere Abfrage und sucht aus deren Ergebenisse wiederum eingeschränkt Datensätze heraus. Nun brauch ich die Anzahl dieser Datensätze. Wohlbemerkt ist die Basisabfrage aber Datenherkunft meines Formulars. Kann ich vielleicht auch ohne eine zweite Abfrage die Anzahl der eingeschränkten Datensätze aus dieser ersten Abfrage herausbekommen? Wenn ja wie? Wie bekomme ich generell Die Datensatzanzahl aus einer Abfrage? Habe bereits Dcount und ähnliches probiert und mich durch das Forum gewälzt, konnte leider keine Lösung finden.

Es wäre schön wenn mir jemand helfen kann, ich brauche das ganze für eine Praktikumsarbeit. Also sehr wichtig.

Danke euch im Voraus
Spassmann

Raz
12.06.2001, 10:15
Hi,
versuche es mit VBA:
beim aktivieren der Form oder beim Klick auf ein Button folgenden Code eingeben, wobei Abfrage durch den Namen Deier Abfrage ersetzt wird, Form durch den Namen Deines Formulars, Text durch das Steeuerelement,
das den Wert anzeigen soll...
Dim db As Database
Dim rst As Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("Abfrage")
rst.MoveLast
Forms![Form].[Text] = rst.RecordCount
rst.MoveFirst
Forms!Form.Requery

gruss,
RAZ

Mickey
12.06.2001, 10:19
Hallo Spaßmann,

ich weiß nicht, ob ich Dich richtig verstanden habe, aber Du könntest doch den SQL-String der zweiten Abfrage in ein Recordset einlesen und dann die Datensätze des Recordsets zählen, oder?

Den SQL-String der zweiten Abfrage kopierst Du Dir und dann fügst Du in einer Ereignisprozedur folgenden Code ein


Dim rst As RecordSet
Dim intCount As Integer

Set rst = CurrentDb.OpenRecordset("SELECT... hier kommt Dein kompletter SQL-String rein...", dbOpenDynaset)
rst.MoveLast
intCount= rst.RecordCount
rst.Close


mit intCount kannst Du dann weiterarbeiten. Hoffe, das hilft Dir weiter.

Ciao Mickey

MarioR
12.06.2001, 10:21
Hallo,

also mit DCount müßte es eigentlich funktionieren:
=DCount("*","Basisabfrage",DeineBedingungen)

DeineBedingungen sind die Bedingungen Deiner 2. Abfrage. Ich schätze mal, daß Du daran gescheitert bist? :) Wenn Du die Bedingungen hier mal aufzählst, kann ich Dir vielleicht diese Zeichenkette zusammenbasteln.

P.S.
Du kannst natürlich DCount auch auf die 2. Abfrage anwenden, dann ohne Bedingungen.

gloria
12.06.2001, 10:21
hi,
habe nicht ganz begriffen, wieso DCount nicht geht. Du hast eine "Ergebnisabfrage" die dir letztendlich die Datensätze anzeigt und du willst die Anzahl davon - ist dies richtig ?? Wenn ja, wieso geht DCount nicht ??

x1=DCount("*", "AbfrageName")

ciao glori

spassmann
12.06.2001, 14:31
Ja ich danke Euch allen recht herzlich, habt mir nochmal um vieles geholfen, habe es jetzt doch mit DCount hinbekommen. Ich alter Dummkopp hab nochmal in der Hilfe nachgelesen und da stand was das man das nur direkt in VB und noch woanders einsetzen kann und ich habs natürlich direkt beim Steuerelementeinhalt reingeschrieben. Bin euch trotzdem sehr dankbar. DCount is ne feine Sache und das beste ist es funktioniert.

Der Tag ist gerettet. Dankeschön
Spassmann

toja
12.06.2001, 17:15
hallo Spassmann,
hat sich für dieses problem zwar vielleicht erledigt, aber vielleicht für die zukunft doch hilfreich: du kannst auch direkt in der abfrage zählen, also im SQL-Statement, und zwar mit "Select count(*, oder Spaltenname(n))...usw...;"
gruss toja