Avatar billede taio Novice
08. juli 2002 - 23:39 Der er 21 kommentarer og
1 løsning

Indputmaske i en kombinationsboks

Hjælp
Jeg har en formular, hvor der er et felt til tlf-nr. Feltet er en kombinationsboks, jeg vil gerne lave en indputmaske på feltet. Med det giver problemer når jeg gerne vil benytte det automatiske opslag som følger med i kombinationsboksen. Jeg har prøvet at lave en indputmaske på tabellen, uden held. Hvad skal jeg gøre..???

\\Taio
Avatar billede tofferman Nybegynder
09. juli 2002 - 01:48 #1
Hvis du gemmer telefonnumrene som tal giver det problemer, hvis du bruger denne inputmaske:

00\ 00\ 00\ 00;0;_

Fordi du ikke kan gemme mellemrum når datatypen er tal. Så skal du istedet gemme det som en streng.

Hvis du vil gemme det som tal, skal du bruge denne inputmaske:

00 00 00 00;;_

Håber det hjælper :-)
Avatar billede taio Novice
09. juli 2002 - 10:29 #2
Jeg har måske forklaret mig forkert. Feltet er et "tekst" felt. Grunden til at jeg vil lave inputmaske, er fordi det tvinger brugeren til at indtaste præsis 8 tegn, hverken mere eller mindre. Problemet med inputmasken er at når jeg taster det første tal, er at den finder det første tlf. med tallet og curseren sprinter til slutningen af tlf. Dette gør at jeg ikke kan indtaste resten af tlf. (autoopslag/autoordbog)

Hjælp
Avatar billede mugs Novice
09. juli 2002 - 18:11 #3
Jeg er ikke sikker på, at jeg helt forstår spørgsmålet. Men jeg har en testdb, som jeg tror vil opfylde dit krav.

Læg din e-mail hvis du vil have den.
Avatar billede taio Novice
09. juli 2002 - 18:17 #4
taio@private.dk
Avatar billede mugs Novice
09. juli 2002 - 18:36 #5
Sendt til taio.
Avatar billede taio Novice
09. juli 2002 - 18:43 #6
Tak for db. I din db er det samme problem, når du taster 7 hopper curseren helt til højre. Hvilket gør at du ikke kan skrive 4 for autoopslag.
Avatar billede susanne_larsen Nybegynder
09. juli 2002 - 19:16 #7
comboen bruges jo normalt mest hvis man vil vælge mellem allerede oprettede data, eller fx kombineret med en msgbox hvor bruger promtes "ønsker du at tilføje XX, da denne ikke eksisterer i forvejen" - hvis bruger så vælger ja, tilføjes data - Men pyt med det - hvis du ikke ønsker autoudfyldning, skal den bare slåes fra :)

- højreklik på comboen og sætte egenskaben "autoudfyldning" til NEJ

men hvis du slår denne facilitet fra, er det i højeste grad en god ide med lidt vba i baggrunden, da du jo kan komme til at rette i eksisterende data, uden brok fra access, medmindre dit felt er en p-nøgle
--- eller du selvfølgelig vælger at kalde din formular så det kun er muligt at oprette nye records
....jeg forstår dog ikke den der med at taste 4 for autoopslag ??????
er det fordi det andet tal er 4, eller???
Avatar billede susanne_larsen Nybegynder
09. juli 2002 - 19:17 #8
sorry - læser jo lige at du vil bruge det automatiske opslag - går lige i tænkebox
Avatar billede mugs Novice
09. juli 2002 - 19:22 #9
Selv tak, hvis det er meningen at du ikke vil have feltets til automatisk at give et forslag til tlfnr., kan du i feltets egenskabsark under fanen data sætte Autoudfyldning til Nej.
Avatar billede mugs Novice
09. juli 2002 - 19:24 #10
Nå - 2 sjæle næsten samme tanke. Jeg tror ikke min hjerne er skruet rigtig sammen iaften. Mojn' venner
Avatar billede susanne_larsen Nybegynder
09. juli 2002 - 19:46 #11
...ok here goes  - lige så snart du bruger inputmaske gør der koks i sagerne, så den bliver du nødt til at undvære hvis du vil bibeholde autoudfyldning - sorry :/

på tabelniveau sætter du feltstørrelsen til 8, opretter en forespørgsel hvor du medtager feltet, og din form bygger på foresp

har lavet en lille test dB, men jeg kunne forestille mig at du gerne vil have formatet til at blive vist således 00 00 00 00 og den dutter desværre ikke, hvis du vil bibeholde autoudfyldning

men i og med feltstørrelsen er begrænset til 8 kan bruger ikke indtaste mere end 8 tegn i feltet - mit bedste bud - desværre :/

access er normalt ikke så kunstig, og problemet er der ikke hvis du kombinerer tal og bogstaver, men det hjælper dig jo desværre ikke
Avatar billede taio Novice
09. juli 2002 - 19:51 #12
Tak susanne. Det med tabel og 8 karakter er gjort. Jeg vil gerne tvinge brugeren til at man SKAL taste 8 tal (00000000) uden mellemrum. Min inputmaske skal bare sikre mig at brugeren taster 8 tal. Men stadigvæk bruger autoopslag, hvis tlf. allerede findes.

Kan man lave en anden form for kontrol istedet for inputmaske. Så brugeren tvinges til at indtaste 8 tal.

Max 8 tal har jeg styr på. (tabel egenskaber)
Avatar billede susanne_larsen Nybegynder
09. juli 2002 - 19:55 #13
ja kan du godt - leger lige lidt
Avatar billede taio Novice
09. juli 2002 - 19:59 #14
Glæder mig...leg ej for længe alene.
Avatar billede mugs Novice
09. juli 2002 - 20:15 #15
Hvis du fjerne inputmasken, kan du i combo'ens FørOpdaterings-hændelse indsætte denne kode:

Dim Streng As String
Streng = felt1
If Len(Streng) <> 8 Then
MsgBox "Forkert indtastning"
Me.Undo
End If
Den måler om længden af den indtastede streng er forskelling fra 8. Er den det annulleres indtastningen.

Men hvis du indtaster 8 tal, der ikke eksisterer i det felt du slår op i, ja så vil indtastningen blive godkendt hvis egenskaben BegrænsTilListe er sat til Nej.
Hvis denne egenskab er sat til Ja, vil du få en advarsel om, at det indtastede ikke er et element på listen, og indtastningen vil ikke blive godkendt. Denne advarsel kommer før den indsatte kode.

Hvis du i det felt comboen slår op i laver din inputmaske, og egenskaben BegrænsTilListe i cpmbpen er sat til Ja, så opnår du vel det samme nemlig:

At det ikke er muligt at indtaste et tlfnr. i comboen som ikke eksisterer i det andet felt.
Avatar billede susanne_larsen Nybegynder
09. juli 2002 - 20:21 #16
...mugs now we are getting somewhere - måske regnvejret hjalp lidt :)

men hvis tekst ikke skal accepteres, men den er mere træls - har du et godt bud ??
Avatar billede taio Novice
09. juli 2002 - 20:35 #17
.mugs. Det virker, men den laver et nyt recordset, ved fejlindtastninger. Hvis jeg sætter den til efterupdate, når den at køre en anden hændelse ved udgang. Og det er ikke godt.

Hvis ikke andet er muligt, må jeg leve med dette. Tak.
Avatar billede mugs Novice
09. juli 2002 - 20:56 #18
Hvis du med fejlindtastninger mener at du indtaster 8 tal, vil det blive accepteret selvom tlfnr. ikke eksisterer i det felt du slår op i. Det er fordi egenskaben BegrænsTilListe er sat til Nej.

Med Me.Undo annullerer du en indtastning der ikke består af 8 tal. Formularen vil blive stående i den nye post. Hvis du f.eks. har 3 poster i tabellen, og du opretter en 4., men kun indtaster 7 tal, kommer MsgBox, og indtastningen bliver annulleret, men prøv at lukke formularen og åbne den igen, og du vil se, at du stadig kun har 3 poster. Men den sidste linie "DoCmd. osv" rykker du en post tilbage, altså væk fra de du forsøgte at oprette.

Dim Streng As String
Streng = felt1
If Len(Streng) <> 8 Then
MsgBox "Forkert indtastning"
Me.Undo
DoCmd.GoToRecord acForm, "form2", acPrevious, 1
End If

Det kan godt være det skyldes regnvejret. Og lige iøjeblikket står det ned i stænger (Sønderjylland).
Pudsigt - for 10 min siden var det høj klar solskin og med torden, men nu er det så mørkt som i en brøndgravers ...
Avatar billede mugs Novice
09. juli 2002 - 20:57 #19
Ps.: Jev absolut mene, at koden skal ligge i BeforeUpdate, idet koden skal afvikles inden posten lagres.
Avatar billede susanne_larsen Nybegynder
09. juli 2002 - 21:01 #20
>>mugs sidder i øjeblikket og er ved at blive lettere irriteret over kode der kun vil acceptere at det indtastede er tal og ikke tekst - har brugt den før, men kan ikke huske hvor, og kan SLET IKKE huske hvordan jeg satte den op

- - har du ikke et rigtig godt bud :)

mhh jeg tror jeg skal til at oprette nogen små dB ligesom du har gør - god ide ;)
Avatar billede susanne_larsen Nybegynder
09. juli 2002 - 21:23 #21
gør = gjort
Avatar billede mugs Novice
09. juli 2002 - 21:47 #22
Jeg har ikke noget bud lige nu - men kan dog huske at spørgsmålet har været oppe før.
De små db'er bruger jeg næsten daglig - specielt nu hvor min arbejdsplads er ved at skifte til XP, og en "klog" EBD-specialist har udtalt, at man ikke kan konvertere Access97 til XP
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