PDA

Vollständige Version anzeigen : "KleinsteFreieZahl" funktioniert plötzlich nicht mehr


Franz Rührnößl
12.08.2001, 13:44
Eingie von euch werden die Funktion "KleinsteFreieZahl", die als Autowertersatz verwendet werden kann, kennen. In meiner Datenbank(ACC2000) benutze ich sie seit längerem, um bei der Eingabe neuer Spieler das Feld [Passnr] automatisch +1 zu erhöhen. Da hat jetzt ein halbes Jahr klaglos funktioniert, doch jetzt die Fehlermeldung 13: Typen unverträglich! Ich habe vieles probiert, habe aber den Fehler nicht gefunden. Woran könnte es kranken!?
Dann habe ich mich im Archiv nach Alternativen umgesehen und von Arno die einfache Prozedur: Ds-Nummer = Max(Ds-Nummer) +1 gefunden. Aber auch damit gibt es nur Fehlermeldungen.

Wer weiß einen AUsweg?

Franz

kama
12.08.2001, 14:25
WelchenDatentype hat das Feld das du zur Speicherung benutzt?
Vielleicht bist an die maximale Zahlngröße gestoßen
Byte 256
Integer Ca 32000
long 2.000.000.000
Wenn es so ist stelle auf long um
Viel Erfolg

Franz Rührnößl
12.08.2001, 15:37
Der Typ ist Long Integer. An dem kann es also nicht liegen.

Franz

kama
12.08.2001, 16:16
Hallo Franz auch am Sonntag schaffen?
Deien Fehlermeldung ist schon recht eindeutig
Irgenwo wird versucht einen Wert in eine Variable oder in ein Feld zu schreiben dessen Typ nicht mit dem deklarierten übereinstimmt. Du müssestest dir den gesamten weg zur erzeugung der PassNr einmal genau anschauen.
bei den jetzt folgenden typs arbeite mit einer Kopie!!
Hast irgendwo was verändert.
Nehme mal die gnze automatik raus und trage von hand deine Paßnr ein und schaue was passiert.
Lösche die letzten 100 Datensätze und versuchs dann nochmal funktionierts dann, müßßte es doch irgenwo an der falschen deklaration von Variablen liegen.
Viel Glück

Franz Rührnößl
12.08.2001, 19:36
Bei meiner Suche nach Ersatz für die "KleinsteFreieZahl"-Funktion bin ich auf folgende Funktion gestoßen, die einfach, unproblematisch und zuverlässig arbeitet:
Private Sub cmdAdd_Click()

Dim mRequest As Double ' as temporary variable
DoCmd.GoToRecord , , acLast
mRequest = [RequestNo]
DoCmd.GoToRecord , , acNewRec
[RequestNo].Value = mRequest + 1
[NächstesFeld].SetFocus
Sie wird einem Button hinterlegt. Anstelle [RequestNo] gibt man seinen Feldnamen, der den Autowertersatz darstellt, ein, der Feldname der den Fokus erhalten soll, muss ebenfalls geändert werden.

Ich hoffe, dass das für manche ein kleine Hilfe meinerseits für die vielen hilfreichen Tipps von euch ist!!

Apropos Hilfe: Kann man die "Datensatz-Zeile" am unteren Ende eines Formulars ausblenden?

Franz