Avatar billede lady Novice
28. november 2002 - 09:20 Der er 11 kommentarer og
1 løsning

betingede kriterier i udtryk

Jeg har brug for et felt hvor der kun må tastet f.eks. a, b, op k hvis et andet felt er lig "Danmark" og ellers kun l, m, op til s hvis det IKKE er "Danmark"
28. november 2002 - 09:42 #1
Du er nødt til at lægge kode på din formular, da du ikke kan lave denne form for validering på tabel-niveau.

Prøv at lægge denne kode på feltets VedTastetryk-hændelse:

Private Sub Text0_KeyPress(KeyAscii As Integer)
    If Me![Dit Andet felt] = "Danmark" Then
        If (KeyAscii >= vbKeyA And KeyAscii <= vbKeyK) Or (KeyAscii >= Asc("a") And KeyAscii <= Asc("k")) Then
        Else
            KeyAscii = 0
        End If
    Else
        If (KeyAscii >= vbKeyL And KeyAscii <= vbKeyS) Or (KeyAscii >= Asc("l") And KeyAscii <= Asc("s")) Then
        Else
            KeyAscii = 0
        End If
    End If
End Sub

/Thomas
Avatar billede lady Novice
28. november 2002 - 10:27 #2
Hej Thomas!
Har du et andet bud, jeg har prøvet at kopiere teksten ind og rettet feltet til. Det skal sige at det er en underformular som er knyttet til en formular, men det gør vel ingen forskel.
28. november 2002 - 10:33 #3
Hey lady,

Der kan være flere ting, som går galt. Prøv derfor at følge denne anvisning:

-Åbn underformularen alene i design
-Marker det felt, som skal valideres.
-Find egenskaben VedTastetryk og klik på knappen med de 3 prikker til højre (og vælg kodegenerator)
-Herefter skal du blot indsætte nedenstående kode mellem de 2 linier:

    If Me![Dit Andet felt] = "Danmark" Then
        If (KeyAscii >= vbKeyA And KeyAscii <= vbKeyK) Or (KeyAscii >= Asc("a") And KeyAscii <= Asc("k")) Then
        Else
            KeyAscii = 0
        End If
    Else
        If (KeyAscii >= vbKeyL And KeyAscii <= vbKeyS) Or (KeyAscii >= Asc("l") And KeyAscii <= Asc("s")) Then
        Else
            KeyAscii = 0
        End If
    End If

Udksift [Dit Andet felt] med navnet på feltet hvor der skal stå "Danmark".

Hvis du ikke følger denne rækkefølge, kan Access ikke knytte koden korrekt til hændelsen.

Jeg håber, at dette hjælper :o)

/Thomas
Avatar billede lady Novice
28. november 2002 - 11:21 #4
Jeg beklager, det hjalp alså ikke. Har du et bedre bud?
28. november 2002 - 11:29 #5
Ligger [Dit Andet felt] på samme formular eller ligger det på hovedformularen?
Avatar billede lady Novice
28. november 2002 - 11:52 #6
det ligge på hovedformularen
28. november 2002 - 11:54 #7
Så skal koden se således ud:
If Me.Parent![Dit Andet felt] = "Danmark" Then
        If (KeyAscii >= vbKeyA And KeyAscii <= vbKeyK) Or (KeyAscii >= Asc("a") And KeyAscii <= Asc("k")) Then
        Else
            KeyAscii = 0
        End If
    Else
        If (KeyAscii >= vbKeyL And KeyAscii <= vbKeyS) Or (KeyAscii >= Asc("l") And KeyAscii <= Asc("s")) Then
        Else
            KeyAscii = 0
        End If
    End If
Avatar billede lady Novice
28. november 2002 - 15:07 #8
Hovedformularen hedder 1-klubtilmedling over og underformularen hedder 2- klubtilmelding under.

Mit felt retter jeg til [1-klubtilmelding over.land] når jeg har kopieret din formel ind, men det er måske forkert?
28. november 2002 - 21:52 #9
Ja, det er ikke helt rigtigt.

Hvis Land ligger på hovedformularen og dit indtastningsfelt ligger på underformularen, så skal koden bare se således ud:

If Me.Parent!Land = "Danmark" Then
        If (KeyAscii >= vbKeyA And KeyAscii <= vbKeyK) Or (KeyAscii >= Asc("a") And KeyAscii <= Asc("k")) Then
        Else
            KeyAscii = 0
        End If
    Else
        If (KeyAscii >= vbKeyL And KeyAscii <= vbKeyS) Or (KeyAscii >= Asc("l") And KeyAscii <= Asc("s")) Then
        Else
            KeyAscii = 0
        End If
    End If
Avatar billede lady Novice
05. december 2002 - 09:05 #10
Tak for det. Det virker. Jeg skulle egentlig have de nordiske lande skrevet på samme sted som Danmark står, jeg har forsøgt med at udvide
If Me.Parent!Land = "Danmark" ; "Norge" o.s.v. Then
men uden held, kan du stadig hjælp mig?
09. december 2002 - 19:37 #11
Sorry, har ikke været på Eksperten i et stykke tid :o(

If Me.Parent!Land = "Danmark" Or Me.Parent!Land = "Norge" Or Me.Parent!Land = "Sverige" Or Me.Parent!Land = "Findland" Then
...
...

Er det sådan, du mener?
Avatar billede lady Novice
10. december 2002 - 14:50 #12
tak det virker
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