Avatar billede bbkdk Seniormester
07. juni 2010 - 18:03 Der er 10 kommentarer og
1 løsning

Flere inputmasker til samme felt

Jeg har et problem med visning af dataene i et felt. Skatteyder er et tekstfelt, hvor der enten står et arbejdsgivernummer (cvr.nr.) med 8 tegn  eller et personnummer (cpr.nr) med 10 tegn, dvs. at i tabellen står alle cifrene uden mellemrum eller bindestreger.

Jeg vil gerne have feltet vist således i formularer og rapporter:

cpr.nr. = ######-####
cvr.nr. = ## ## ## ##

Det må være noget med:

If Len(Skatteyder) > 8 then

Inputmask(Skatteyder) = "######-####"

else

InputMask(Skatteyder) = "## ## ## ##"

End if

Ovenstående skulle være til VBA, men det virker (måske ikke så overraskende for eksperter)ikke.

Det ideelle er vel at lave det på et felt i en forespørgsel, men hvordan ville koden i givet fald skulle se ud.
Avatar billede mugs Novice
07. juni 2010 - 21:32 #1
Jeg tror du tager lidt fejl af begreberne.

I dit spørgsmål skriver du:

"med visning af dataene "

Senere skriver du om inputmasker.
En Inputmaske er den måde hvorpå du indtaster data i feltet. Du skal tænke på en formatering, som er den måde hvorpå dine øjne ser data på skærmen. Jeg mener ikke, at du kan ændre en inputmaske uden at ændre tabellens design. Hvorimod man sikkert kan ændre formatteringen i en forespørgsel eller formular.

Uden dog at jeg har nogen løsning.
Avatar billede Slettet bruger
07. juni 2010 - 22:38 #2
Din kode er ikke helt ved siden af, men det du prøver på kan ikke lade sig gøre. Dvs. det kan det godt men kun lige i et øjebliksbillede, du kan ikke bevare formateringen/inputmasken
!~)

I stedet kunne du have et tekstfelt og gøre således:~)

Private Sub CprEllerCvr_AfterUpdate()
If Len(Me.CprEllerCvr) = 10 Then
Me.CprEllerCvr = Left(Me.CprEllerCvr, 6) & "-" & Right(Me.CprEllerCvr, 4)
ElseIf Len(Me.CprEllerCvr) = 8 Then
Me.CprEllerCvr = Left(Me.CprEllerCvr, 2) & " " & Mid(Me.CprEllerCvr, 3, 2) & " " & Mid(Me.CprEllerCvr, 5, 2) & " " & Mid(Me.CprEllerCvr, 7, 2)
Else
Me.CprEllerCvr = Null
MsgBox "Ikke et gyldigt cpr. eller cvr. nr."
End If
End Sub
Avatar billede bbkdk Seniormester
08. juni 2010 - 21:56 #3
Tak til jeg begge.

Mugs - jeg er enig, selvom jeg ikke helt forstår. Hvis jeg har en tabel, hvor dataene er indtastet som ########, og jeg i inputmasken i formularen skriver ## ## ## ##, vises feltet i formulen som ## ## ## ##.

Og til spg - det virker helt perfekt. Din kode må så skulle tilføjes under hver formular, hvor feltet skal vises. Dog må den også kunne oprettes i et modul og derefter føjes til AfterUpdate, hvor den ønskes anvendt.

Du får points.
Avatar billede bbkdk Seniormester
08. juni 2010 - 22:00 #4
Hej igen spg
Fik du points?
Avatar billede Slettet bruger
08. juni 2010 - 22:06 #5
nej!~)
Avatar billede Slettet bruger
08. juni 2010 - 22:09 #6
nej, du skal markere mit navn!~)
Avatar billede Slettet bruger
08. juni 2010 - 22:09 #7
..eller noget i den retning...
Avatar billede mugs Novice
08. juni 2010 - 22:10 #8
Hmm
Inputmasken er den måde du indtaster data på. I et datofelt kan du lave en inputmaske, hvor du indtaster f.eks.:

08062010

for datoen idag. Inputmasken vil så selv sætte separationstegn således:

08-06-2010

Men din formatering af feltet behøver jo ikke at være sådan. Du kan i formatteringen vælge at få vist data på en anden måde som f.eks:

08 JUN 10

Men det er kun den måde dine øjne ser data. På din HD vil der være en lagret en numerisk værdi svarende til antal dage efter 1 JAN år 1900.

Men jeg mener stadig ikke, at du kan ændre inputmasken "on the flying"
Avatar billede Slettet bruger
08. juni 2010 - 22:47 #9
Problemet er at ændrer man inputmasken, gælder det alle poster og når formularen åbnes på ny bliver den sat tilbage til det, der er valgt i designvisning!~)
Avatar billede bbkdk Seniormester
08. juni 2010 - 22:58 #10
Hej Mugs
Spg's svar virker udmærket, men den er ikke uden problemer. Løsningen virker kun, hvis dataene indtastes i en formular, hvor koden er tilknyttet. Og dataene gemmes så i en tabel med den formattering, som koden angiver. Det må give problemer, hvis der er tale om data, der importeres fra en ekstern kilde til en tabel.
Jeg vil i morgen - hvis arbejdet tillader det -læse nogle afsnit om samspillet mellem inputmasker og formattering.

Hej spg
Nu har du vist fået dine points.
Avatar billede Slettet bruger
08. juni 2010 - 23:13 #11
!~)
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