Unzulässige Verwendung von Null

Hallo: Ich frage eine MaxID ab (in einer normalen Abfrage)

SELECT Max(Report.ID) AS [Max von ID]
FROM Report;

Nun ist die Datenbank leer und dementsprechend der WERT = Null.

Dim repid
repid = 1
If Me.maxID.Value = 0 Then
Me.maxID.Value = 1
End If
repid = CInt(Me.maxID.Value) + 1

Damit habe ich gehofft, dass beim ersten Mal der Wert Null erkannt und dann auf 1 hochgezählt wird, aber Pustekuchen:

Laufzeitfehler 94: Unzulässige Verwendung von Null

Lege ich einen Datensatz an, funktioniert alles tadellos.
Es wird hochgezählt, die MaxID erkannt und alles.

Was kann ich tun?

Danke Inti31(+3)

Sorry, habe dieses auch im anderen Forum „SQL / Datenbankprogrammierung“ geposted

Hallo auch,
Null(leer)ist nicht dasselbe wie 0,
Hier sollte die Nz-Funktion (not zero) helfen:

SELECT Max(Nz(Report.ID)) AS [Max von ID]
FROM Report;

Klappts ?
Stefan

Hi! Danke für die Antwort, zuerst einmal:

SELECT Max(Nz(Report.ID)) AS [Max von ID]
FROM Report;

funktioniert in der Abfrage (qry_Max_Repid), ich kriege „0“ (ohne „“) angezeigt. :smile:

Nun habe ich ein verstecktes Textfeld (maxID), welches mir den Wert ausgibt. Deklariert ist es so:

=Max([ReportID])

Ich weiss absolut nicht, wie der Eintrag nun zu gestalten ist und ich es umschreiben soll, damit mir dort die „0“ angezeigt wird. Mit dem angegebenen Eintrag krieg ich nichts angezeigt, wenn die DB leer ist, setze ich einen Eintrag, erscheint dann dort allerdings die „1“

cu Inti31(+2)

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Manno,

Nun habe ich ein verstecktes Textfeld (maxID), welches mir den
Wert ausgibt. Deklariert ist es so:

=Max([ReportID])

Hier dasselbe in Grün:
also
=Max(NZ(Me!ReportID))

Wenns funktioniert will ich nen Bewertungsstern :smile:
Klappts ?
Stefan

Einfacher
Moment mal,
Wenn

SELECT Max(Nz(Report.ID)) AS [Max von ID]
FROM Report;

funktioniert in der Abfrage (qry_Max_Repid), ich kriege „0“
(ohne „“) angezeigt. :smile:

die Datenbasis für dein(en) Formular/Bericht ist

Nun habe ich ein verstecktes Textfeld (maxID), welches mir den
Wert ausgibt

Dann heisst es natürlich:
=[Max von ID]

Klappts ?
Stefan

Hallo,

Du kannst mit der DCount-Funktion zu Beginn überprüfen, ob Deine Datenquelle Daten enthält:

If DCount(„Tabellenname“, „Feldname“) = 0 Then
MsgBox(„Keine Daten“)
Else
'Was immer Du möchtest
EndIf

Statt Tabellen geht auch Abfragen, Feldname kann ein beliebiges Feld sein.

Ulrich

Sorry, hatte ne Menge um die Ohren und komme jetzt erst dazu Euch zu antworten. Zuerst einmal: Danke für die geleisteten Beiträge. Die haben mich dazu gebracht, dass ganze nochmals zu überdenken und umzusetzen. Ich habs hingekriegt! Hier jetzt den Code zu posten wäre zu umfangreich, deswegen lasse ich Euch teilhaben an meiner DB.

Unter: http://itmanager.mixfix.de/

könnt Ihr Sie downloaden. Berichtet mal und für Ergänzungen/Anregungen bzw. für Optmierungen des ganzen Projektes wäre ich sehr dankbar. Fragen beantworte ich im Übrigen auch (per Mail). Email ist angegeben in der DB. Diese Datenbank ist auf die Freeware AIDA32 abgestimmt. DL unter: http://www.aida32.hu/download/aida32ee_393.zip

Die DB ist dann in AIDA32 unter „Datei“ - „Einstellungen“ - „ADO“ einzutragen. Über „Bericht“ - „Berichts-Assistent Pro/Lite“ - Berichtformat „ADO“ auswählen und dann seinen Rechner scannen. Dann die Datenbank starten und sich in Ruhe durch die „Seiten“ klicken.

Das nächste Projekt wird sein, Änderungen zwischen den verschiedenen gescannten Rechnern darzustellen (falls welche da sein sollten). Bisher habe ich aber noch keine Idee und (zu)wenig Zeit, wie ich da anfange. Also nochmals: Anregungen und insbesondere Feedback wäre fein.
Aber probiert selbst einmal. Vielleicht können wir ja aus der Db noch was machen… :smile:

cu Harry

na ja

Zuerst einmal: Danke für die geleisteten
Beiträge.

Bitte

deswegen lasse ich
Euch teilhaben an meiner DB.

… vorausgesetzt man kauft sich das neueste Access ???

Stefan

Werde heute nachmittag die DB für Access 2000 bereitstellen, einverstanden?

Gruß Harry

klar doch …

Werde heute nachmittag die DB für Access 2000 bereitstellen,
einverstanden?

klar doch,
arbeite zwar am liebsten mit Access 97 (das ist so schön kompatibel und ich find DAO besser als ADO) aber ich hab noch n 2000er aufm anderen Rechner.
…werd mir deine DB also mal anschaun.

Die Wege des Herrn sind unergründlich, aber immer die richtigen.

Stefan

Sodele, beide DBs (Office 2000 / Office XP) habe ich hochgeladen.
Eine 97er hätte er nur mit Einschränkungen gmacht, da mir ein paar Objektbibliotheken fehlen (Habe kein 97er mehr).

Wenn jemand die DB auf 97 wandeln kann und alles funktioniert, dann bitte die DB mir zukommen lassen, ich stelle sie dann mit ein auf der Webseite.

Gruß Harry