Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Textfeld formatieren; Quelle Datumstextfeld (Access 2007)

Begonnen von petermeier, März 21, 2012, 14:21:33

⏪ vorheriges - nächstes ⏩

petermeier

Hallo

Ich habe einen Bericht mit unter anderem zwei Textfeldern.
Textfeld A gibt jeweils ein Datum aus wie z.B. 02.04.2012. Es kann aber auch sein, dass anstelle eines Datums der Wert 00:00:00 erscheint.

In einem Textfeld B habe ich folgende Formatierung hinterlegt (Steuerelementinhalt), dass nur der Monat und Jahr aufgrund der Info in Textfeld A ausgegeben wird: =Format$([K];"mmmm jjjj";0;0)

Das funktioniert soweit gut ausser wenn im Textfeld A "00:00:00" vorliegt, berechnet Access im Textfeld B trotzdem ein Monat und Jahr was dann Dezember 1899 ergibt.

Wie kann ich bei diesem Steuerelementinhalt noch hinzufügen, dass wenn "00:00:00" in Textfeld A erscheint, dass dann kein Monat/Jahr berechnet werden soll, sondern nur ein "-" ausgegeben werden soll?


DF6GL

#1
Hallo,

eigentlich sollte man das Übel an der Wurzel packen und herausziehen, statt an Symptomen herumzudoktern...

=IIF (Int(nz([K];0)) =0 ;"-";Format(nz([K];0);"mmmm jjjj"))





petermeier

Danke Frank, aber es ergibt einen syntaktischen Fehler (kein Operator)....

Was ist denn das Übel? Es ist bewusst, dass im Textfeld A (sprich K) manchmal ein Datum vorhanden ist oder eben nicht, was
dann als 00:00:00 dargestellt wird...

DF6GL

Hallo,

ja, Freudsche Fehlleistung..     8)


Statt "Then" muss ein Semikolon stehen.  Hab das im vorherigen Posting geändert.


"Was ist denn das Übel?"


Du hast erzählt, es steht 0 drin....  das sollte bei Datumsfeldern gar nicht sein.  0 ist aber auch was anderes als "leer"  (NULL), deshalb die nZ()-Funktion, die ein leeres Feld abfängt.


Auch leere Datumsfelder  sollten in einer Tabellenicht auftauchen. Das könnte z. B. bei der Eingabe der Daten (mittels Formular) schon überprüft/unterbunden werden. Weiterhin könnte man die Eigenschaften ("Eingabe erforderlich", "leere Zeichenfolge") des Tabellenfeldes entsprechend einstellen.


Wenn man leere Felder zuläßt

petermeier

ok, so funktioniert es mit einer noch zuätzlichen ")" am Schluss...

Vielen Dank!


Vielleicht war mein Gedankengang nicht ganz korrekt. Aber die Eingabe einer "0" kommt daher,
dass eine Berechnung anhand mehreren Feldern durchgeführt wird. Im Feld "fixe Laufzeit" kann es eben vorkommen,
dass keine Lauzeit vorliegt und dann wird "0" eingegeben, dass anschliessend die Berechnung nicht durchgeführt wird!
Dies einfach als Info...

DF6GL

Hallo,

ist ja ok,  und wenn Du damit auch klar kommst, soll mir das Recht sein....   ;)