Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Gültigkeitsregel

Begonnen von Mina, Dezember 04, 2016, 20:03:39

⏪ vorheriges - nächstes ⏩

Mina

Hallo Forum,
ich habe eine Tabelle mit Telefonnummern, MobiltelefonNr. Fax usw.
Es gibt Leute, die haben nur eine TelefonNr. oder nur eine MobilNr.

Es muss jedoch in jedem Feld ein Wert stehen.
Ich wollte das Problem mit einer Gültigkeitsregel lösen.

Meine Idee für das TelefonNr-Feld: Wenn([Tele];"";"keine")
Funktioniert leider nicht!

Kann mir jemand einen Tipp geben

Gruß
Mina



crystal

Hallo Mina,
in deiner Gültigkeitsregel gibt es 2 Fehler.
1. wenn man sie "übersetzt", lautet die Regel ungefähr:
Wenn (telnr) existiert, dann nehme "", ansonsten "keine"
2. "keine" ist nur dann möglich, wenn das Feld als Text und nicht als Zahl definiert ist.

Eine Lösung könnte sein:
Wenn (telnr) existiert, dann nehme sie, ansonsten nichts (oder 0).

Wenn([Tele];[Tele];"0")

Das bewirkt nur, dass im Feld Tele die Telefon-Nr. steht, wenn sie schon dasteht, ansonsten eine 0.
Problem ist nur, dass eine Gültigkeitsregel nur dann geprüft wid, wenn im betreffenden Feld auch etwas eingegeben wird.

Deshalb musst du die Prüfung wohl eher machen, BEVOR der Datensatz abgespeichert werden soll, ODER du müsstest alle TK-Felder mit "Eingabe erforderlich: Ja" kennzeichnen und daneben einen Text schreiben wie "wenn unbekannt, bitte 0 eingeben" (was aber nicht funktioniert, z. B. nach Bewegen der Maus in ein anderes Feld).

Es bleibt also nichts anderes übrig, als die Telefon-Felder zu prüfen, bevor der DS gespeichert werden soll. Dazu ist etwas VBA-Code nötig.

lg
crystal
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

MzKlMu

#2
Hallo,
eine Telefonnummer muss zwingend Text sein, sonst sind die 0en bei der Vorwahl weg. Mit einer Gültigkeitsregel geht das ohnehin nicht in einer Tabelle und als Formel in einem Formularfeld auch nicht. Das Feld wird ja dann mit der Formel belegt und ist dann nicht mehr beschreibbar. Das muss in einem Formular gemacht werden wie von Crystal auch vorgeschlagen.

Ich würde mir die Sache aber ganz einfach machen und die Felder in der Tabelle mit dem Standardwert "Keine" vorbelegen und dann einfach bei Bedarf überschreiben.
Man müsste aber dann noch mit etwas VBA den Fall abfangen wenn der Datensatz später noch geändert wird.

Als alter Datenmodellanmeckerer ;D möchte ich aber nicht unerwähnt lassen, dass man das mit 2 zusätzlichen Tabellen als n:m Beziehung lösen würde.
Das ist deutlich flexibler. Da gibt es dann auch keine leeren Felder mehr. Und es lassen sich beliebig viele unterschiedlichen Kommunikationseinträge erfassen. (Email, Festnetz priv., Festnetz Dienstl., Fax, Homepage, Handy, Skip, usw. usw. )

Siehe Bild aus einer anderen DB.
Gruß Klaus

Mina

Hallo,
Vielen Dank für Eure Tipps.

Ich werde das Problem mit "Eingabe erforderlich=ja" lösen. Daneben einen Anweisungstext.

Gruß
Mina

Lachtaube

Selbstverständlich lässt sich eine Gültigkeitsregel in den Eigenschaften der Tabelle - nicht des Felds - festlegen, die garantiert, dass mindestens eines der drei Felder einen Eintrag haben muss.[Tele] Ist Nicht Null Oder [Mobil] Ist Nicht Null Oder [Fax] Ist Nicht NullWas eine Telefonnummer enthalten muss oder darf, kann mehr oder weniger gut in der Gültigkeitsregel des Felds selbst festgelegt werden. Ohne auf Fremdsoftware zuzugreifen kannst Du gültige Telefonnummern kaum garantieren. Ich verweise nur mal auf Googles phonenumber Bibliothek, von der es wiederum viele Forks auch in anderen Sprachen gibt - leider nicht in VBA. :D
Grüße von der (⌒▽⌒)

MzKlMu

Hallo,
Zitatdass mindestens eines der drei Felder einen Eintrag haben muss.
Dass das geht ist mir auch klar, aber Mina wollte ja auch noch "keine" reinschreiben wenn ein Feld leer ist, geht das dann auch mit der Gültigkeitsregel ?
Gruß Klaus

Lachtaube

Für die Anzeige von keine könnte man die Formateigenschaft heranziehen: @;"keine"
Grüße von der (⌒▽⌒)