Avatar billede tolveren Nybegynder
21. februar 2005 - 19:13 Der er 11 kommentarer og
1 løsning

Checkbox - styre focus

Jeg har et problem med checkbox (ja/nej).
Jeg har en underform hvor checkbox-feltet befinder sig.
Min bruger må ikke kunne klikke på checkbox-feltet før
hovedformularens felt1 er <> fra 0.
Jeg har indsat denne kode på hændelsen "Ved klik". Jeg har også prøvet de andre hændelser.
---------
Private Sub Salg_pris_ja_nej_Click()
If Forms![Hovedformen]![Felt1] = 0 Then
    DoCmd.CancelEvent
    Forms![Hovedformen]![Felt1].SetFocus
    Else
    End If
End sub
----------
Koden virker på min andre felter i underformen. Her har jeg dog
anvendt hændelsen "ved ændret". Denne hændelse findes ikke på en checkbox. Tilsyneladende så virker min If ikke. Er der nogen som kan give mig en ide eller noget kode som kan hjælpe mig videre.
Avatar billede terry Ekspert
21. februar 2005 - 19:24 #1
Try using the before Update event

Private Sub Salg_pris_ja_nej_chk_BeforeUpdate(Cancel As Integer)

If Forms![Hovedformen]![Felt1] = 0 Then
    Cancel = True
End If

End Sub
Avatar billede terry Ekspert
21. februar 2005 - 19:32 #2
you can also refer to the main form like this

Me.parent.felt1
Avatar billede tolveren Nybegynder
21. februar 2005 - 20:56 #3
Det virker ikke for mig. Så hvis du har andre ideer er du velkommen
Avatar billede terry Ekspert
21. februar 2005 - 21:02 #4
can you send me your dB?
eksperten@NOSPAMsanthell.dk
remove NOSPAM
21. februar 2005 - 21:13 #5
Du  kan ikke bruge VedKlik, da den ikke kan annulleres.

Jeg ville i stedet gribe det lidt anderledes an. Jeg ville lægge denne kode på hovedformularens VedAktuel og EfterOpdatering:

If Me!felt1 = 0 then
    Me![navn på underformular-objekt]![Dit checkboks felt].Enabled = true
Else
    Me![navn på underformular-objekt]![Dit checkboks felt].Enabled = false
endif
Avatar billede tolveren Nybegynder
21. februar 2005 - 22:15 #6
Det hjalp mig ikke, men tak alligevel. Hvad mener du når du skriver
[Navn på underformular-objekt] specielt objekt.
Mener dú ikke bare "underformens navn" og det kan f eks være en forespørgsel ?
21. februar 2005 - 22:23 #7
jo, jeg mener underformularens navn. Men én af de mest almindelig fejl, er at man bruger det forkerte navn. Hvis man f.eks. har en underformular som hedder "Formular1" i databasevinduet. Men selve underformular-objektet hedder måske "Underordnet objekt11".

Det er altså egenskaben Navn på underformularen, som jeg mener.

Men det kan sagtens være en forespørgsel, men ikke i dette tilfælde, da du ikke kan låse eller lægge hændelser på en forespørgsel.
Så din underformular SKAL være en formular.
Avatar billede tolveren Nybegynder
22. februar 2005 - 14:09 #8
hej thomas m fl. Din ide er fin nok men den virker ikke hos mig. Jeg får debug og en fejlmedd: Object doesn’t support this property or  method ’438’.
Kan det tænkes at methoden: enabled ikke virker på en checkbox.
Kan man enable hele underformen indtil et felt i hovedformen er udfyldt ? og
hvordan mon syntaxen vil lyde. Hvis man enabler kan man så se underformen ?
Avatar billede terry Ekspert
22. februar 2005 - 19:12 #9
21/02-2005 21:02:48?
22. februar 2005 - 19:17 #10
ja, du kan bare prøve med:

If Me!felt1 = 0 then
    Me![navn på underformular-objekt].Enabled = true
Else
    Me![navn på underformular-objekt].Enabled = false
endif
Avatar billede tolveren Nybegynder
23. februar 2005 - 14:13 #11
Thomas din grundlæggende ide var god nok. Jeg gik ind på underformens hændelse: ændret og indsatte:
If Me!felt1 = 0 then
cancelevent
Else
End if
og den virker på alle felterne i underformen. Også på ja/nej feltet
Når felt 1 er <> 0 så kan focus gå ned i underformens felter
23. februar 2005 - 15:42 #12
Super :o)
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