none
Validation Rule für das Format "<char><digit><digit>"

    Frage

  • Hallo,

    ich bin gerade dabei meine Access(2003)-DB zu konfigurieren und frage mich wie ich das Eingabeformat für ein Feld auf "<uppercase char><digit 0-9><digit 0-9>" beschränken kann.

    Beispiele:

    "V20"

    "X65"

    "D15"

    Diesem Tutorial zufolge, bedeutet "???", genau drei Zeichen (wobei die Zeichen Buchstaben, Zahlen und Sonderzeichen sein können). Mittels "*[A-Z]*" begrenzt man die Eingabe auf Buchstaben, mit "*[0-9]*" auf Ziffernfolgen von 0-9.

    Nun ist die Frage, wie ich das richtig kombiniere. Die Syntax ist mir nicht ganz einleuchtend, was bedeuten z. B. * und []  ?

    MfG

    Flux89


    • Bearbeitet Flux1989 Mittwoch, 11. Juli 2012 19:50
    Mittwoch, 11. Juli 2012 19:49

Antworten

  • Hallo,

    Flux1989 wrote:

    Habe unter Input Mask: ">L00" eingegeben, nach einem Klick auf "finish"
    steht als Eigenschaftswert neben Input Mask: ">L00;;_"

    stimmt das so??

    Bei mir steht da ">L00" ohne Quotes. Falls du ueber den Assistenten
    eingegeben hast, lass den mal weg und gib direkt im Eigenschaftsfeld ein.

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    • Als Antwort markiert Flux1989 Freitag, 20. Juli 2012 16:34
    Donnerstag, 12. Juli 2012 22:52
    Moderator
  • Das Input Format dafür wäre dann ">L00#" (ohne Quotes). Da wird dann zwar ein Leerzeichnen an der letzten Stelle angezeigt, aber nicht gespeichert.

    Gruss

    Henry

    • Als Antwort markiert Flux1989 Freitag, 20. Juli 2012 16:34
    Donnerstag, 19. Juli 2012 04:40

Alle Antworten

  • Hallo,

    Flux1989 wrote:

    ich bin gerade dabei meine Access(2003)-DB zu konfigurieren und frage
    mich wie ich das Eingabeformat für ein Feld auf "<uppercase char><digit
    0-9><digit 0-9>" beschränken kann.

    Beispiele: "V20" "X65" "D15"

    Das Format lautet:

    L00

    (Groesser als, L, 2 x Ziffer Null.)

    Einzugeben in den Eigenschaften des Formulars, Tab Daten, Eingabeformat.

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Mittwoch, 11. Juli 2012 22:58
    Moderator
  • Moin Moin,

    du unterliegst einem Denkfehler. Wie Peter schon richtig schreibt, bezieht sich das "Eingabeformat" auf ein Formularfeld, wo die Daten eingegeben werden. mit einem Tabellenfeld ist das nicht möglich. Validations Rules ist eine Kontrolle, ob eine Bedingung erfüllt wurde. Diese kann man in einem Tabellenfeld, oder auch in einem Formularfeld eintragen.

    Übersetzt: wenn die Bedingung erfüllt ist, kann das Feld verlassen werden, falls nicht: gebe einen Hinweis aus und verbleibe im Feld bis die Bedingung erfüllt ist.

    Die Frage ist also: willst du die Eingabe mit einem Format vorgeben, oder die Eingabe in ein Feld überprüfen?

    btw *[  bzw. ]* sind Begrenzer, als z.B. so zu verstehen wie Gänsefüßchen oder einfache oder eckige Klammern.

    Grüße aus Rostock

    Wolfgang

    (Netwolf)

    Mittwoch, 11. Juli 2012 23:37
  • Die Frage ist also: willst du die Eingabe mit einem Format vorgeben, oder die Eingabe in ein Feld überprüfen?

    Ok, was ich will ist eine Formatüberprüfung, wenn mein OleDBDataAdapter sein Update bzw. Insert ausführt. Die Daten werden von einem DataSet/DataTable in die Acces03-DB geschrieben. Ist der Wert in der entsprechenden Spalte nicht format-konform, soll es Errors  hageln ^^

    Donnerstag, 12. Juli 2012 19:14
  • Hallo,

    Masterhelp wrote:

    bezieht sich das "Eingabeformat" auf ein Formularfeld, wo die Daten
    eingegeben werden. mit einem Tabellenfeld ist das nicht möglich.

    Die Eigenschaft "Eingabeformat" gibt es auch in den Feldeigenschaften in
    der Tabelle.

    Ansonsten sind deine Anmerkungen korrekt, es handelt sich hier nicht um
    Validation Rules sondern Input Masks.

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Donnerstag, 12. Juli 2012 20:17
    Moderator
  • Ansonsten sind deine Anmerkungen korrekt, es handelt sich hier nicht um
    Validation Rules sondern Input Masks.

    Ok, danke für eure Hinweise. Wie allerdings formuliere ich das nun korrekt?


        L00
    
    (Groesser als, L, 2 x Ziffer Null.)
    
    Einzugeben in den Eigenschaften des Formulars, Tab Daten, Eingabeformat.

    Habe unter Input Mask: ">L00" eingegeben, nach einem Klick auf "finish" steht als Eigenschaftswert neben Input Mask: ">L00;;_"

    stimmt das so??


    Donnerstag, 12. Juli 2012 21:47
  • Hallo,

    Flux1989 wrote:

    Habe unter Input Mask: ">L00" eingegeben, nach einem Klick auf "finish"
    steht als Eigenschaftswert neben Input Mask: ">L00;;_"

    stimmt das so??

    Bei mir steht da ">L00" ohne Quotes. Falls du ueber den Assistenten
    eingegeben hast, lass den mal weg und gib direkt im Eigenschaftsfeld ein.

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    • Als Antwort markiert Flux1989 Freitag, 20. Juli 2012 16:34
    Donnerstag, 12. Juli 2012 22:52
    Moderator
  • Ok, das funktioniert. Wie kann ich nun erreichen, dass entweder >L00 ODER >L000 als Format akzeptiert wird? Wenn ich ">L00 OR >L000" (ohne quotes) eingebe, dann versteht die software "OR" als feste Zeichenfolge, anstatt als logisches ODER
    Montag, 16. Juli 2012 20:32
  • Hallo,

    Flux1989 wrote:

    Ok, das funktioniert. Wie kann ich nun erreichen, dass entweder >L00 ODER >L000 als Format akzeptiert wird? Wenn ich ">L00 OR >L000" (ohne
    quotes) eingebe, dann versteht die software "OR" als feste Zeichenfolge,
    anstatt als logisches ODER

    Die Eigenschaft laesst nur Eingabemasken zu. Wenn du Text reinschreibst,
    erscheint dieser 1:1, wenn es sich nicht um interpretierbare Zeichen
    handelt.

    Du hattest in deiner Vorgabe nur von 3-stelligen (1+2) Codes geschrieben.
    Wovon haengt denn ab, ob ein 3- oder 4-stelliger Code folgt?
    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Dienstag, 17. Juli 2012 16:37
    Moderator
  • Das Input Format dafür wäre dann ">L00#" (ohne Quotes). Da wird dann zwar ein Leerzeichnen an der letzten Stelle angezeigt, aber nicht gespeichert.

    Gruss

    Henry

    • Als Antwort markiert Flux1989 Freitag, 20. Juli 2012 16:34
    Donnerstag, 19. Juli 2012 04:40
  • Wovon haengt denn ab, ob ein 3- oder 4-stelliger Code folgt?
    Ist nicht vorhersehbar und leider nicht in meinem Einflussbereich
    Freitag, 20. Juli 2012 16:31
  • Da wird dann zwar ein Leerzeichnen an der letzten Stelle angezeigt, aber nicht gespeichert.

    Wenn dem so ist, dann passt es.

    Danke an alle!

    Freitag, 20. Juli 2012 16:36