Problem mit logischen Feldern
Hallo,
ich habe ein Problem mit logischen Feldern:
Ich möchte ein Feld names Loeschen auf 1 setzen, wenn zwei andere Felder 0 sind.
Hier mein Versuch:
Sind standart und neu 0, dann löschen 1, sont 0.
Hier mein Ergebnis:
Standart Neu Ergebnis Beurteilung
1 1 0 Richtig
1 0 0 Richtig
0 0 #Fehler falsch
0 1 #Fehler falsch
Ich muss dazu sagen:
Standart: das Feld ist berechnet in einem Oracle-View auf den ich die Access-DB verknüpft habe
Neu: Berechnetes Feld in einer übergeordneten Abfrage in Access
Kann mir jemand sagen, wo der BUG ist?
Danke schonmal
ich habe ein Problem mit logischen Feldern:
Ich möchte ein Feld names Loeschen auf 1 setzen, wenn zwei andere Felder 0 sind.
Hier mein Versuch:
Loeschen: Wenn([standart]=0 Und [neu]=0;"1";"0")
Sind standart und neu 0, dann löschen 1, sont 0.
Hier mein Ergebnis:
Standart Neu Ergebnis Beurteilung
1 1 0 Richtig
1 0 0 Richtig
0 0 #Fehler falsch
0 1 #Fehler falsch
Ich muss dazu sagen:
Standart: das Feld ist berechnet in einem Oracle-View auf den ich die Access-DB verknüpft habe
Neu: Berechnetes Feld in einer übergeordneten Abfrage in Access
Kann mir jemand sagen, wo der BUG ist?
Danke schonmal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 135090
Url: https://administrator.de/contentid/135090
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
6 Kommentare
Neuester Kommentar
Moin Maik97,
auf die Frage nach dem Bug die ehrliche Antwort: keine Ahnung.
Ich habe schon in deinem letzten Thread nicht wirklich verstanden, welchen Syntaxkriterien dieses Klicki-Assi-Krams folgt.
Wieder zwei Hypothesen:
Also einfach
statt: Wenn([standart]=0 Und [neu]=0;"1";"0")
neu: Wenn([standart] +[neu]=0;"1";"0")
Trotz alledem.... ich finde keine rechten sprachlichen Zugang zu diesem.... generierten.
Ich wäre schon längst auf "SQLCode bearbeiten" gegangen.
Grüße
Biber
auf die Frage nach dem Bug die ehrliche Antwort: keine Ahnung.
Ich habe schon in deinem letzten Thread nicht wirklich verstanden, welchen Syntaxkriterien dieses Klicki-Assi-Krams folgt.
Wieder zwei Hypothesen:
- entweder es scheitert daran, dass das Feld [neu] nicht immer numerisch ist (sondern auch mal NULL sein kann) ->dann musst du eh zusätzlich auf NULL prüfen
- oder aber beide Felder sind definitiv numerisch (0 oder 1)... dann kannst du statt einer "logischen" AND-Prüfung doch einfach auf "Summe-beider-Felder-gleich-0" prüfen.
Also einfach
statt: Wenn([standart]=0 Und [neu]=0;"1";"0")
neu: Wenn([standart] +[neu]=0;"1";"0")
Trotz alledem.... ich finde keine rechten sprachlichen Zugang zu diesem.... generierten.
Ich wäre schon längst auf "SQLCode bearbeiten" gegangen.
Grüße
Biber
Moin hybadd,
Aber irgendwie reden wir jetzt schon zu dritt aneinander vorbei...
Ich versuch noch mal zusammenzufassen (was bei mir angekommen ist)
Zwar hat maik87 ganz oben gepostet:
Als Ergebnis soll laut dem Klick-Bunti-Assi ebenfalls eine "0" oder "1" geliefert werden (nicht WAHR (intern -1) oder FALSCH (intern 0) )
Daraufhin, wenn also [standart] und [neu] NICHT numerische Werte sind, wie zunächst angenommen, verstieg ich mich zu dem Vorschlag
...Wenn([standart]="0" Und [neu]="0";"1";"0")
...den ich heute sogar so schreiben würde:
...Wenn([standart] & [neu]="00";"1";"0")
Sprich: wenn die Feldinhalte von [standart] und [neu] konkateniert (zusammengeklatscht) sind, kann ich auf 'String ist "00"' prüfen.
Wo ich dir Recht gebe: Wenn er WAHR/FALSCH zurückhaben will, dann sollte er -1/0 nehmen oder aber (noch sicherer) (1=1) für TRUE und (1=2) für FALSE.
@Maik87
Liest du noch mit?
Grüße
Biber
Zitat von @hybadd:
Meines Wissens wird in Acces der logische Wert "ja" mit -1 dargestellt. Versuche doch mal -1 zuzuweisen.
Ja, schon...Meines Wissens wird in Acces der logische Wert "ja" mit -1 dargestellt. Versuche doch mal -1 zuzuweisen.
Aber irgendwie reden wir jetzt schon zu dritt aneinander vorbei...
Ich versuch noch mal zusammenzufassen (was bei mir angekommen ist)
Zwar hat maik87 ganz oben gepostet:
Loeschen: Wenn([standart]=0 Und [neu]=0;"1";"0")
Sind standart und neu 0, dann löschen 1, sont 0.
---> aber später stellt sich heraus, das [standart] und [neu] zwei CHAR(1)-Felder mit den erlaubten Werten "0" und "1" sind.Sind standart und neu 0, dann löschen 1, sont 0.
Als Ergebnis soll laut dem Klick-Bunti-Assi ebenfalls eine "0" oder "1" geliefert werden (nicht WAHR (intern -1) oder FALSCH (intern 0) )
Daraufhin, wenn also [standart] und [neu] NICHT numerische Werte sind, wie zunächst angenommen, verstieg ich mich zu dem Vorschlag
...Wenn([standart]="0" Und [neu]="0";"1";"0")
...den ich heute sogar so schreiben würde:
...Wenn([standart] & [neu]="00";"1";"0")
Sprich: wenn die Feldinhalte von [standart] und [neu] konkateniert (zusammengeklatscht) sind, kann ich auf 'String ist "00"' prüfen.
Wo ich dir Recht gebe: Wenn er WAHR/FALSCH zurückhaben will, dann sollte er -1/0 nehmen oder aber (noch sicherer) (1=1) für TRUE und (1=2) für FALSE.
@Maik87
Liest du noch mit?
Grüße
Biber