23. maj 2001 - 10:28Der er
13 kommentarer og 4 løsninger
Acces - valideringsregel?
Kan man i et tekstfelt ikke \"lave\" en regel som gør det umuligt at skrive tal i feltet. F.eks. i et felt som indeholder et navn, hvis jeg nu ikke vil risikere at en person kommer til at skrive 0 (nul) istedet for \"stort o\". Det må kunne lade sig gøre, måske via en valideringsregel?? Mon nogen kan hjælpe?
Jeg tror, at det vil være for besværligt at gøre det på tabel-niveau. Derimod kan du ret nemt gøre det på en formular (brugeren bør jo også kun indtaste data via en formular og ikke via en tabel!).
På formularens tekst-felt, kan du på hændelsen \"VedTastTrykket\" kontrollere at brugeren ikke trykker et at tallene 0-9 ved at sætte KeyAscci = 0 hvis KeyAscii >47 eller <58
Du har ret i din antagelse bortset fra, at din valideringsregel ikke forhindre, at brugeren taster f.eks. \"ABC123\" eller \"123ABC\". Den checker kun om brugeren taster ét ciffer (og det gør de vel sjældent?)
Jeg må have udtrykt mig forkert. Jeg tager det ikke ilde op, at du retter. Du er velkommen. Den bedste måde at lære er at tage ved lære af sine egne fejl.
Da jeg begyndte med Acccess på mit arbejde , fejlede min arbejdsgiver ved ikke at tilbyde kurser til dette nyindføret vidunderbarn der hedder Access. Men med venstre hånds pegefinger i en bog og højre hånd på \"klaviaturet\", lykkedes det da at få noget brugbart ud af vidunderbarnet.
Men det var en lang og træls vej, men dog også spændende, man dengang lovede jeg mig selv, at det trælse arbejde med den grundlæggende lære, også skulle komme andre tilgode hvis jeg var i stand til at hjælpe.
Jeg har lært meget af dine svar / kommentarer, så der er ikke grund til at undskylde - jeg tager det i den ånd det er ment:
\"Hjælp en ven.\"
Så jeg håber du fortsætter med dine svar / kommentarer.
på formularen i textboxens beforeupdate event bruge flg kode:
Private Sub txtbox_BeforeUpdate(Cancel As Integer) If InStr(1, txtbox, \"0\", vbTextCompare) > 0 msgbox \"du har indtastet 0 istedet for o\" txtbox = \"\" end if end sub
Denne kode vil undersøge om der er indtastet et 0 og derefter slette indholdet af textboxen.
Nu da du ligefrem opfordre mig til at kommentere, så vil jeg da gøre det :o)
\'Jeg synes\', at din idé er god nok....men: brugeren kan jo stadig taste tallene 1-9. Desuden er det mere brugervenligt at fortælle brugeren at han gør noget forkert med det samme. Dvs i det øjeblik han rører 0-tasten. Hvis han f.eks. har skrevet 2 O\'er - det ene som et nul og det andet rigtigt. Så ved han ikke hvilket O, som er det forkerte ud fra din fejlmeddelelse.
Som jeg foreslår i mit første svar, så kan man bruge hændelsen VedTastTrykket (OnKeyPress) til at kontrollere hvert eneste tasteslag om det er mellem 0 og 9. Derved får brugeren en besked med det samme (det kan bare være et bip hvorefter tasten annulleres -så ved brugeren at tallene er fy-taster!)
Mit indlæg var ment som et alternativ til din løsning, så Marianne havde noget at vælge imellem.
Jeg kan godt se at din løsning er mere elegant end 10 if sætninger.
Det er ikke så tit jeg nogle guldkorn i dette forum - men en gang i mellem stikker jeg næsen frem. :)) - Jeg har endda lært en del af de \"smilys\" og forkortelser I bruger.
Jo flere der svarer og kommentere jo bedre - det giver basis for at få luftet og delt en hel masse guldkorn. Og det er det, det drejer sig om her. Så blive endelig ved med at bidrage :o)
Jeg har selv tidligere benyttet newsgroups og andre tilsvarende fora med stor glæde og succes. Nu synes jeg bare, at det er rart at hjælpe andre og samtidig er det afstressende at pusle lidt med alle disse små kryptiske opgaver.
Nå, men gad vidst om Marianne har fået svar på sit spørgsmål???
Tusind tak for de mange svar, og undskyld at jeg først vender tilbage nu - har været på ferie m.m.
Jeg har valgt at bruge løsningen med at arrangere formularen så den passer til det jeg har brug for, men på et senere tidspunkt vil jeg vende tilbage til de andre svarmuligheder og se om jeg ikke også kunne lave selve tabellen sådan at den forhindrer indtastning af tal, hvor bogstaver er påkrævet og omvendt. Foreløbig er der ikke tid til at sidde og \"lege\" med databasen, men det bliver der forhåbentlig snart. Så jeg vender sikkert tilbage med flere spørgsmål!
Mange venlige hilsener og endnu en gang tak... Marianne
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.