Avatar billede marrix Juniormester
23. maj 2001 - 10:28 Der 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?

Marianne
23. maj 2001 - 10:33 #1
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

/Thomas
Avatar billede mugs Novice
23. maj 2001 - 12:27 #2
Marianne

På tabelniveau vil valideringsreglen se således ud:

Not \"0\" And Not \"1\" And Not \"2\" o.s.v.

der ikke tillader indtastning af tegnene 0, 1 og 2.

Men indrømmet - Thomas løsning er unægtelig mere elegant.

Mvh / mugs
23. maj 2001 - 12:29 #3
Hey Mugs,

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?)

/Thomas
Avatar billede mugs Novice
23. maj 2001 - 13:51 #4
tja - så havde du sgu ret igen.

Marianne - gi\' lige Thomas en 4-500 point

Mvh / mugs
23. maj 2001 - 13:54 #5
Undskyld, Mugs!

Det var ikke for at rette på dig. Det var kun for at vise dig nogle af alle de vidunderlige faldgrupper der er i denne verden :-))

Jeg håber ikke, at du tager det ilde op - jeg ved godt, at jeg tidligere har kommenteret et af dine svar. Men det er altså ment i den bedste ånd :o)

mvh
Thomas
23. maj 2001 - 13:55 #6
Og trøst dig med, at du bestemt ikke er den eneste, jeg har kommenteret :-)
Avatar billede johs_j Novice
23. maj 2001 - 14:17 #7
Du kan lave en Inputmaske med lige så mange ????????????????? som du nu har brug for. Så kan der kun indtastes bogstaver. Se evt. hjælp.
Avatar billede mugs Novice
23. maj 2001 - 17:29 #8
Thomas

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.


Mvh / Mugs
23. maj 2001 - 22:06 #9
Det kan du tro, Mugs :o)

Jeg er faktisk selv 100% selvlært. Så jeg kender selv værdien af alle slags fif og tricks.

Held og lykke fremover - and please: ask if you are in doubt

/Thomas
Avatar billede nih Novice
24. maj 2001 - 18:35 #10
Svar fra endnu en selvlært:

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.

Og jeg modtager også gerne kommentare :o)

niels
Avatar billede nih Novice
24. maj 2001 - 18:42 #11

If InStr(1, txtbox, \"0\", vbTextCompare) > 0 THEN


Avatar billede nih Novice
24. maj 2001 - 18:56 #12
Efter afprøvning af koden skal den se sådan ud:

Private Sub Navn_AfterUpdate()
    If InStr(1, Navn, \"0\", vbTextCompare) > 0 Then
        MsgBox \"du har indtastet 0 istedet for o\"
        Navn = Null
    End If
End Sub

den skal altså ligge i afterupdate event
24. maj 2001 - 21:57 #13
Hey Niels,

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!)

Prøv det engang og fortæl hvad du mener...

mvh
Thomas
Avatar billede nih Novice
24. maj 2001 - 23:19 #14
> Thomas

Tak for din kommentar. :o)

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.

Niels
25. maj 2001 - 09:56 #15
Hej igen,

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???
Avatar billede marrix Juniormester
07. juli 2001 - 19:31 #16
Hej alle

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
Avatar billede mugs Novice
07. juli 2001 - 21:57 #17
Det ser vi da frem til.

Mvh / Mugs
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester