Access 03 bericht feld visible=false

hallo ihr lieben!

ich habe einen klitzekleines access problem:

habe einen bericht und dort habe ich bezeichnungsfelder eingefügt (also, bspweise Tel und dahinter das entsprechende feld -aus der tabelle).

wenn nun aber keine telefonnummer hinterlegt ist, dann soll er das bezeichnungsfeld „Tel“ auch nicht anzeigen.

Klingt einfach - ist es aber offensichtlich nicht :wink:

ich habe mal folgendes gemacht:

Private Sub Report_Open(Cancel As Integer)
If Me.Tel = „“ Then
Me.Bezeichnungsfeld78.Visible = False
Else
Me.Bezeichnungsfeld78.Visible = True
End If
End Sub

Fehlermeldung:
Laufzeitfehler ‚2427‘: Sie haben einen Ausdruck eingegeben der keinen Wert hat.

Danke schonmal vorab!

lg Cristina

Hallo Cristina,

Private Sub Report_Open(Cancel As Integer)

das würde ich nicht beim Öffnen eintragen, sondern beim Formatieren!

If Me.Tel = „“ Then

das setzt voraus, das etwas eingetragen wurde, die Prüfung ISNULL wäre da sinnvoller:

If isnull(Me.Tel) Then

Me.Bezeichnungsfeld78.Visible = False
Else
Me.Bezeichnungsfeld78.Visible = True
End If
End Sub

wobei man das kürzen kann, es reicht diese eine Zeile:
Me.Bezeichnungsfeld78.Visible = not isnull(Me.Tel)

Fehlermeldung:
Laufzeitfehler ‚2427‘: Sie haben einen Ausdruck eingegeben der
keinen Wert hat.

kein Wert ist NULL

du hast drei Zustände:
keine Daten = NULL
Wert ohne Inhalt = „“
Wert vorhanden = „0123456-456789“

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Wolfgang,

Danke für den Tip … klappt aber komischerweise nicht.

Also, ich bekomme keine Fehlermeldung mehr :smile: aber er zeigt einfach das Feld (bez78) weiterhin an obwohl keine Daten (in tel) drinstehen.

Ich habe keine Auswahl zu „Formatieren“ ich kann (soweit ich das sehe) bei meinem Bericht nur einen Code einfügen bei:

  • beim öffnen
  • beim schliessen
  • bei aktivierung
  • bei deaktivierung
  • bei seite
  • bei fehler

lg cristina

Moin, cristina,

so ein Report besteht aus

  • Report
  • Detailbereich Ereignis.

Gruß Ralf

ja, da schau her! viiiielen dank. jetz hauts hi :smile:

na denn, bis zum nächsten problem würde ich sagen :wink:

lg cristina

ok … zu früh gefreut! grrr

es gibt da mehrere so felder in dem bericht die nicht angezeigt werden sollen … (gleichzeitig natürlich)

Private Sub Seitenkopfbereich_Format(Cancel As Integer, FormatCount As Integer)
If IsNull(Me.Tel) Then
Me.Bezeichnungsfeld78.Visible = False
Else
Me.Bezeichnungsfeld78.Visible = True
End If

If IsNull(Me.Filialleiter) Then
Me.Bezeichnungsfeld77.Visible = False
Else
Me.Bezeichnungsfeld77.Visible = True
End If

Bei Bez78 klappts, bei Bez77 nicht.
woran liegts?

lg cristina

ok … zu früh gefreut! grrr

chrchrchr

woran liegts?

manchmal sind Felder nicht leer (=NULL), sondern enthalten Leerzeichen.

Was spricht denn gegen die kurze Notation Bezfeld.Visible = Not IsNull(Variable)?

Gruß Ralf

manchmal sind Felder nicht leer (=NULL), sondern enthalten
Leerzeichen.

ne, nachgeschaut, kein leerzeichen drin. aber, klar … könnte sein.

Was spricht denn gegen die kurze Notation Bezfeld.Visible =
Not IsNull(Variable)?

äääh … bitte, wo denn? (bitte für vba-anfänger erklären)
ist es denn grundsätzlich richtig die zwei
if … hintereinanderzustellen oder ist das schon das problem??

lg cristina

siehe meine Antwort:

If isnull(Me.Tel) Then
Me.Bezeichnungsfeld78.Visible = False
Else
Me.Bezeichnungsfeld78.Visible = True
End If

wobei man das kürzen kann, es reicht diese eine Zeile:

ISNULL liefert entweder TRUE oder FALSE
und mehr brauchst du ja auch nicht:

Me.Bezeichnungsfeld78.Visible = not isnull(Me.Tel)

das NOT macht aus einem TRUE ein FALSE und umgekehrt, da das Feld ja NICHT angezeigt werden soll wenn NULL.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

hi ihr,

ok, nach einigem hin und her probieren ist mir aufgefallen dass es bei jedem feld klappt, ausser beim filialleiter … ganz komisch. aber, jetz isses mir auch wurscht. bleibt das halt drin :wink:

ganz lieben dank!

lg Cristina

hi du,

ausser beim filialleiter …

könnte da ein Tippfehler vorliegen?

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)