MS Access - If No Data

Hallo Leute,

ich habe ein (hoffentlich) kleines Problem in Access, da ich eigentlich absolut keine Ahnung davon habe, scheitere ich daran.

Folgendes:
Ich habe mehrere Berichte, die er nur drucken soll, wenn Sie Daten enthalten. Vielleicht könnt ihr mir helfen?

So sieht mein Code aus:

Function Test01()
DoCmd.OpenReport „B_Bericht01“, acNormal, „“, „“
If Reports!B_Bericht01.NoData = False Then DoCmd.PrintOut acPrintAll, , , acHigh, 1, True
DoCmd.Close acReport, „B_Bericht01“

DoCmd.OpenReport „B_Bericht02“, acNormal, „“, „“
If Reports!B_Bericht02.NoData = False Then DoCmd.PrintOut acPrintAll, , , acHigh, 1, True
DoCmd.Close acReport, „B_Bericht02“

DoCmd.OpenReport „B_Bericht03“, acNormal, „“, „“
If Reports!B_Bericht03.NoData = False Then DoCmd.PrintOut acPrintAll, , , acHigh, 1, True
DoCmd.Close acReport, „B_Bericht03“
End Function

Hallo.

Ich habe mehrere Berichte, die er nur drucken soll, wenn Sie
Daten enthalten.

Wenn meine Frau Klöße kocht, sind Sie leicht und bekömmlich NoData ist ein Ereignis im Bericht, keine Eigenschaft oder Methode des Berichts. Es nimmt mich Wunder, dass er Deinen Code so akzeptiert …?

Du müsstest jeweils im Bericht eine Ereignisprozedur OnNoData hinterlegen. Da das NoData-Ereignis vor dem Drucken eintritt, kannst Du das Drucken so noch abwürgen. Siehe auch die M$-Hilfe zu „NoData“.

Gruß Eillicht zu Vensre

Moin Sven,

Folgendes:
Ich habe mehrere Berichte, die er nur drucken soll, wenn Sie
Daten enthalten. Vielleicht könnt ihr mir helfen?

also du packst in den jeweiligen Bericht:

Private Sub Report\_NoData(Cancel As Integer)
 On Error Resume Next
 MsgBox "Keine Daten mit diesen Kriterien gefunden!", \_ 
 vbOKOnly + vbExclamation, "Keine Daten"
 Cancel = True
End Sub

Wenn du keine Ausgabe haben möchtest, dann einfach die MsgBox weglassen.

Was mir bei deinem Code - unabhängig davon dass er falsch war - noch aufgefallen ist:

Du vergleichst Boolean!
Auch wenn falsch, hier aus deinem Code:

Reports!B_Bericht01.NoData = False

Du vergleichst also:

Wenn True=True … Ergebnis: True

Merkst du was? Es wäre also nur notwendig die Eigenschaft selbst zu benutzen:

Wenn True Dann …

In deinem (falschen) Beispiel also:
If Reports!B_Bericht01.NoData then …

Gruß
Daniel Scholdei

Danke Dir!
werde es morgen mal testen.
Ich habe in der Arbeit eine vom Vorgänger übernommene Datenbank, habe mich selbst nie weder mit Access noch VBA beschäftigt… deswegen ist kein Wunder das mein „Code“ so grausam aussieht… hab halt gedacht auch ich bekomm das irgendwie hin :wink:

Gruß
Sven

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