1.9k Aufrufe
Gefragt in Datenbanken von
Hallo db-Kenner,

Wie kann ich in access 2003 verhindern, das die Zelle Berta mit Werten beschrieben wird wenn in der Zelle Adam eine Null bzw. kein Wert eingetragen ist und umgekehrt:
Was ist zu tun, wenn Zelle Adam einen Wert enthält damit man Zelle Berta auf keinen Fall überspringt. Beide Zellen befinden sich in einer Tabelle "Direkteingaben" hintereinander, wobei der Wert von Zelle Berta mit Adam multipliziert wird.
Wenn nun aber in Adam kein Wert steht darf auf keinen Fall versehentlich ein Wert in Berta eingetragen werden sonst sind weitere Folgeabfragen fehlerhaft.
Ist das Problem evtl. schon in der Tabelle oder erst in einer entsprechenden Abfrage bzw. im Formular zu lösen?
Bin noch ziemlich neu mit access beschäftigt und im Codieren nicht so firm, wäre daher für eine verständliche Erklärung dankbar.

Danke und Gruß

Klexus

6 Antworten

0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Klexus,

In der Entwurfsansicht der Tabelle in den Feldern (Felddatentyp Zahl) Adam und Berta:

>Allgemein
>Gültigkeitsregel >0
>Gültigkeitsmeldung z.B. kein Inhalt

Somit gibt es kein Weiterkommen, wenn in Feld "Adam"kein Wert eingegeben wird, wird jedoch in Feld "Adam" ein Wert eingegeben, gibt es nur ein Weiterkommen, wenn in Feld "Berta" ein Wert eigegeben wird.

hoffe das Problem verstanden zu haben


Gruß

Paul1

Excel/Access 2003
0 Punkte
Beantwortet von
Hallo Paul1,

danke für die schnelle Antwort. Problem ist leider etwas komplexer:
Feld 'Adam' kann sehr wohl einen Nullwert aufweisen (d.h. man muß auch bei Null weiterkommen), dann darf aber in Berta nichts eingetragen werden.
Nur wenn in 'Adam' ein Wert > als 0 eingetragen wird muß auch zwingend ein Eintrag in 'Berta' erfolgen.
Ich hoffe, mein Problem ist jetzt deutlicher geworden.

Ich experimentiere noch weiter, vielleicht fällt ja dir oder jemand anders noch was dazu ein?

Danke und Gruß

Klexus
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Klexus,

Alles klar!

Derzeit ist es so, dass bei Null überhaupt kein Weiterkommen möglich ist.
Dieses Weiterkommen soll möglich sein, nur darf in Berta zwingend nichts eingegeben werden.

Die zweite Bedingung ist jedoch schon erfüllt, wenn in "Adam" ein Wert eingegeben wird, muß auch in "Berta" zwingend ein Wert eingegeben werden, sonst gibt es kein Weiterkommen.

Ich sehe keine Möglichkeit mit den herkömmlichen Funktionen in Access, die Lösung des Problems im Sinne der Anfrage umzusetzen.

Mit einer Programmierung könnte es vielleicht gehen, aber das ist nicht mein Metier.


Gruß

Paul1
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Klexus,

zitat:
Wenn nun aber in Adam kein Wert steht darf auf keinen Fall versehentlich ein Wert in Berta eingetragen werden sonst sind weitere Folgeabfragen fehlerhaft.


Vielleicht könntest Du mir das näher erklären (besonders das mit den Folgeabfragen), da es für die nachfolgenden Alternativen entscheidend sein kann.

Das multiplizieren der beiden Felder kann nicht das Problem sein, denn wenn in einem der beiden Felder ein Nullwert steht, ergibt das bei der Multiplikation auch Null, die zweite Bedingung wird ohnehin erfüllt.

Ein Weiterkommen ist möglich wenn in Adam eine Null steht und z.B. ein Wert in Berta, nehmen wir an immer eine 1, dann ist das Ergebnis der Multiplikation auch Null, also daran kann es nicht liegen, außer der Wert in Berta wird noch für andere Zwecke gebraucht.

Eine andere Alternative mit bedingter Formatierung im Formular:

Keine Gültigkeitsregel in der Tabelle, dafür farbmäßige Absetzung bei Fehleingaben im Formular direkt bei der Eingabe und kann sofort korrigiert werden.

Sollten diese Varianten denkbar und möglich sein, könnte ich zur besseren Übersicht (wenn erforderlich) ein Konzept erstellen.

Gruß

Paul

Excel/Access 2003
0 Punkte
Beantwortet von lorf55 Mitglied (699 Punkte)
Eventuell hilft ja:
IIf(Nz([adam])>0,[adam],[berta])

Wenn [adam] nicht NULL ist, also einen Wert enthält, und der auch
noch größer 0 ist, erhält [berta] den Wert, sonst bleibt es beim alten
Wert von[berta].

HTH
0 Punkte
Beantwortet von
Hallo Paul1 und lorff55,

Das Problem ist gelöst mit einer Zusatzspalte und der etwas abgewandelten Formel von @ lorff55 in der Abfrage und dem tab-Überspringen im Ausfüllformular (Eigenschaften 'Textfeld', 'In Reihenfolge': "Nein" - um ein zufälliges Ausfüllen zu erschweren) Natürlich kann man mit der Maus immer noch jederzeit in das Feld springen, aber das ist vielleicht auch ganz ok so.
Daher an dieser Stelle ein Danke an Euch, mit dieser Lösung kann ich leben.
@Paul1:
Eine weiterführende Erläuterung ist für mich nicht so einfach möglich, da ich mir im Erklären ohne Beispieldatei sehr schwer tue und eine solche (Datenschutz) nicht einstellen kann.

Ansonsten noch eine schöne Woche

Klexus
...