Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Frank77 am Mai 09, 2012, 17:32:09

Titel: Datumswert direkt eintragen mit Checkbox als Kriterium
Beitrag von: Frank77 am Mai 09, 2012, 17:32:09
Hallo !
Ich würden Gere in einer Tabelle in ein Datums Feld das aktuelle Datum  eintragen lassen wenn Das Ja/Nein Feld den Wert True aufweist und wer dann False wieder leeren
Ich habe das im Datums Feld unter standartwert so versucht
=Wenn([VeranstaltungsStandGeldBezahlt]=1;Datum();"--.--.----")
Das leider nicht

Meine Frage wäre kann das überhaupt realisiert werden oder muss da aus einem Formular gemacht werden mit VBA

Gruß Frank 
Titel: Re: Datumswert direkt eintragen mit Checkbox als Kriterium
Beitrag von: MzKlMu am Mai 09, 2012, 17:38:46
Hallo,
in einer Tabelle geht das nicht. Am besten im Formular mit VBA im Ereignis "Nach Aktualisieren" des Ja/Nein Feldes.

If Me.[VeranstaltungsStandGeldBezahlt]= -1 Then
     Me.Datumsfeld = Date
Else
     Me.Datumsfeld = Null
End If


PS:
True ist -1 und nicht 1
Titel: Re: Datumswert direkt eintragen mit Checkbox als Kriterium
Beitrag von: Beaker s.a. am Mai 09, 2012, 21:51:11
Hallo,
ZitatTrue ist -1 und nicht 1
Hatten wir das nicht schon mal?
Access interpretiert jeden Wert UNGLEICH 0 als True.
gruss ekkehard
Titel: Re: Datumswert direkt eintragen mit Checkbox als Kriterium
Beitrag von: Josef P. am Mai 09, 2012, 22:15:10
Hallo!

ZitatAccess interpretiert jeden Wert UNGLEICH 0 als True.
Das hilft aber nur bei einem Boolean-Vergleich (wenn eine Zahl nach Boolean konvertiert wird) und nicht bei einem Zahlenvergleich, wenn ein Boolean-Wert in eine Zahl konvertiert wird.

Die Aussage "True ist -1 und nicht 1" ist vollkommen korrekt, wenn sie sich auf die VBA-Konvertierung eines Boolean-Wertes in eine Zahl bezieht.
Aber die Zahl 1 oder auch 34523982 kann auch als True interpretiert werden, wenn eine Konvertierung nach Boolean erfolgt.

Const x As Boolean = True

If x = 1 Then
  MsgBox "Mich siehst du nie!"
End If

If x = -1 Then
  MsgBox "Hier kommt es zu einem Zahlenvergleich: CInt(True) entspricht -1"
End If

If x = CBool(27) Then
  MsgBox "Hier kommt es zu einem Boolean-Vergleich: CBool(27) ergibt True"
End If


/edit:
ZitatIf Me.[VeranstaltungsStandGeldBezahlt]= -1 Then
Warum hier -1 statt True verwendet wird, verstehe ich allerdings nicht.
Auch in einer Abfrage würde ich True statt -1 schreiben.

mfg
Josef
Titel: Re: Datumswert direkt eintragen mit Checkbox als Kriterium
Beitrag von: Beaker s.a. am Mai 09, 2012, 22:47:09
Hallo Josef,
Danke für Aufklärung.
Ist mir nie aufgefallen, da ich Booleanwerte eigentlich
immer direkt nach True/False abfrage; - wozu sind
Konstanten da?
@MzKlMu
Entschuldigung; - das kommt davon, wenn man so
"Weisheiten" unreflektiert/-getestet weitergibt.
gruss ekkehard