PDA

Vollständige Version anzeigen : Problem mit RecordCount


Matthias_Metzger
04.07.2001, 16:15
Hallo,

ich will unter Access97 (SR2b) die Anzahl der Datensätze in einer Tabelle ermitteln und das Ergebnis einer Variable vom Typ long übergeben.

Leider liefert mir der folgende Code nicht das korrekte Ergebnis:

Dim AnzLänder as Long
Dim Datenbank As Database
Dim Menge As Recordset

'Anzahl der Länder in "Land" ermitteln.
Set Datenbank = CurrentDb
Set Menge = Datenbank.OpenRecordset("Land")
Menge.MoveLast
AnzLänder = Menge.RecordCount
Menge.Close
Set Datenbank = Nothing

In AnzLänder erhalte ich 20 anstatt der in der Tabelle "Land" tatsächlich vorhandenen 25 Datensätze.
Bei einer anderen Tabelle zählt er dann wieder richtig !!!

Was mache ich falsch ?
Leider bin ich noch Neuling in Access.

mfg
M. Metzger

MarioR
04.07.2001, 16:22
Hallo Matthias,

versuchs mal mit
AnzLänder = DCount("*","Land")

FW
04.07.2001, 17:37
... Die Frage war: "Was mache ich falsch?" - und das würde mich auch interessieren!

Matthias, schicke mir bitte mal die MDB (fw@engine.de), weil ich so ein Problem bis jetzt (wissentlich) noch nie hatte, d. h. das Phänomen interessiert mich und ich würde gern herausfinden, wo "der Hund begraben liegt"!

Frank

Matthias_Metzger
05.07.2001, 14:18
Danke für die Hilfe.
Ich verwende ab jetzt DCount

mfg
M. Metzger

Stema
05.07.2001, 14:38
Hallo Matthias,

am Code kann ich keinen Fehler entdecken. Kopiere mal Deine Tabelle und wende den gleiche Code auf die kopierte Tabelle an.

Matthias_Metzger
05.07.2001, 15:09
Hallo Stema,

das habe ich bereits gemacht. Jedoch ohne Erfolg.
Wenn ich jedoch die DB komprimiere, wird die Satzanzahl von RecordCount plötzlich korrekt zurückgegeben. Beim Komprimieren wird wohl irgendetwas reorganisiert.

Gruß
M. Metzger

FW
07.07.2001, 12:20
Hallo Matthias,

sorry erst mal, dass ich so lange auf mich warten ließ, aber ich habe erst heute Zeit gefunden.

Also zum Problem fällt mir leider (das nicht etwa wegen 'nem Mitgefühl zu Dir, sondern eher wegen meiner Hilflosigkeit) absolut nichts ein!

Ich dachte zuerst, dass die DB irgendwie 'n' Knacks weg hat und nach 'ner Reparatur wieder wunderbar funktioniert, aber nein, auch nach erfolgreicher Reparatur liefert Recordcount immer noch 20 zurück!

Nun wäre das ja auch ok, wenn man sich darauf verlassen könnte, dass nach einer Komprimierung dieses Problem nie wieder auftaucht, aber woher soll man diese Zuversicht nehmen?

In der Hoffnung, dass DCount immer richtig funktioniert, muss man sich wohl dem Mysterium beugen und diese Funktion zum Zählen benutzen!

Ich werde nun wohl auch meine Sourcen alle scannen müssen und sicherheitshalber alle RecordCount's durch DCount's ersetzen.

Tut mir wirklich leid, Dir nicht helfen zu können!

In tiefer Trauer und Ratlosigkeit

Frank

Matthias_Metzger
09.07.2001, 14:06
Hallo Frank,

Danke für deine Bemühungen.
Hoffentlich lauert diesbezüglich nicht noch mehr im Hintergrund. Man will bei einer Tabelle mit Tausenden von Einträgen ja nicht jedesmal explizit nachzählen.

Gruß
M. Metzger

Stema
16.07.2001, 11:05
Hallo Matthias,

was mir gerade noch einfällt. Kann das evtl. mit dem Primär-Schlüssel zusammenhängen? Wenn der zufällig vergeben wird kann es auch negative ID-Werte geben. Ich könnte mir vorstellen, daß genau diese beim RecordCount nicht mit erfaßt werden. Bug???

Matthias_Metzger
16.07.2001, 14:33
Hallo Stema,

der Primärschlüssel ist vom Typ AutoWert und geht von 1 bis 24. Negative Werte kommen nicht vor.

Gruß
M. Metzger