Avatar billede nyholm Novice
03. februar 2006 - 11:15 Der er 7 kommentarer og
2 løsninger

Avsluta operation med focus på ett fælt

Hej alla!
Nær jag har ett formulær øppet och via knappfunktion eller fæltfunktion kør en instruktion, vill jag att operationen avslutas med att ett visst fælt får focus.
Jag undrar om det finns någon kodinstruktion som resulterar i att fæltet som har tabordning 0 får focus?
Man kan ju alltid anvønda instruktionen DoCmd.GoToControl "Mitt fælt", men finns det kodinstruktion som hittar fæltet med tabordning 0?
Avatar billede mugs Novice
03. februar 2006 - 11:29 #1
Der findes en egenskab i VBA der hedder tabindex. Spøgsmålet var oppe for ikke så lang tid siden, og så vidt jeg husker, blev der ikke fundet nogen brugbar løsning.
Avatar billede jesperfjoelner Nybegynder
03. februar 2006 - 13:07 #2
Nyholm > Ville det mon virke, hvis du havde en lille funktion, som gennemløb elementerne på en formular og fandt den, som havde tabindex = 0 ?
Den funktion kunne så køres i stedet for "docmd.gotocontrol..."

Ville den her virke?


Function SetTabToZero()
Dim ctl As Control
Dim frm As Form
Dim s As String
Set frm = Forms!form2
For Each ctl In frm.Controls
    If ctl.ControlType <> 100 Then
    If Me(ctl.Name).TabIndex = 0 Then
        s = ctl.Name
    End If
    End If
Next
Me(s).SetFocus
Set ctl = Nothing
Set frm = Nothing
End Function


Private Sub Command9_Click()
SetTabToZero
End Sub
Avatar billede mugs Novice
03. februar 2006 - 20:17 #3
Jesper - Jeg får en fejl når jeg gennemløber din kode. Har rodet lidt med det, og denne fungerer tilsyneladende:

Function SetTabToZero()
Dim ctl As Control
Dim frm As Form
Set frm = Forms!frmfilter
For Each ctl In frm
If ctl.ControlType <> 100 Then
If ctl.TabIndex = 0 Then
Exit For
End If
End If
Next
ctl.SetFocus
Set ctl = Nothing
Set frm = Nothing
End Function
Avatar billede jesperfjoelner Nybegynder
03. februar 2006 - 21:59 #4
Mugs > Din virker i hvert fald også. Jeg får nu ingen fejl fra min egen. Blot skal formularnavnet selvfølgelig passe til den form man arbejder med. Men lade sig gøre kan det vist.
Avatar billede mugs Novice
03. februar 2006 - 22:04 #5
Hmm - Den første fejl jeg fik var på denne linie:

If Me(ctl.Name).TabIndex = 0 Then

Der ikke accepterer Me(ctl.Name)

Kan det være versionen? Jeg bruger Access2000. Mit formularnavn var OK.
Avatar billede jesperfjoelner Nybegynder
03. februar 2006 - 23:07 #6
Det lyder mystisk. Jeg har også både Access 2000 og XP, men det virker tilsyneladende. Jeg ved ikke lige, hvad der er på færde.
Avatar billede nyholm Novice
05. februar 2006 - 11:57 #7
Hej jesperfjoelner och mugs!
Har varit bortrest och inte kunnat svara tidigare.
Tack før era førslag. I ditt førslag, mugs, anger du "Set frm = Forms!frmfilter". Vad står frmfilter før? Nær jag har testat ditt førslag så har jag angett formulærets namn i stællet før frmfilter. Kan jag anvænda ett uttryck som fungerar på aktivt formulær, d v s det formulær som jag startar funktionen från?
Avatar billede nyholm Novice
05. februar 2006 - 12:04 #8
Anledningen till att jag søker en funktion som finner førsta fæltet, ær att jag har børjat få ett felmeddelande efter att en kod kørs som slutar med DoCmd.GoToControl "Forarnr". Meddelandet sæger att det inte finns något fælt i denna postuppsættning med det namnet, trots att fæltet finns. Jag kan inte hitta orsaken till att detta felmeddelande kommer upp.
Avatar billede jesperfjoelner Nybegynder
05. februar 2006 - 12:16 #9
Nyholm > forms!frmfilter betyder blot at din formular hedder "frmFilter".
Hvis din formular hedder "form2" skal der stå "forms!form2"
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