Avatar billede t-johansen Juniormester
21. juni 2006 - 14:14 Der er 18 kommentarer og
1 løsning

Shift tabulering ud af underformular

En der har et tip til hvordan kan bagud tabulere (shift+tab) sig fra  underformular til hovedformular.

Pointen er at brugeren ikke skal være "fanget" i underformularen, og at man ikke skal lægge mærke til at der er en underformular.
Avatar billede mugs Novice
21. juni 2006 - 14:33 #1
Me.Parent.SetFocus
Avatar billede mugs Novice
21. juni 2006 - 14:37 #2
Ellser hvis du vil til et bestemt felt i hovedformularen:

Me.Parent!FELTNAVN.SetFocus
Avatar billede t-johansen Juniormester
21. juni 2006 - 15:18 #3
men gør den det så ikke hele tiden når man tabulerer sig ud af underformularen.

pointen er at man skal kunne tabulere sig baglæns og forlæns ud af underformularen afhængig af hvad man vil.
Avatar billede t-johansen Juniormester
21. juni 2006 - 15:26 #4
hvor præcis ville du sætte Me.Parent.SetFocus ind henne.

På underformularens vindue?
i første felt i underformularen?

evt under hvilken hændelse?

Setfocus er det ikke en hændelse og hvid der, hvad hedder den på dansk?
Avatar billede fdata Forsker
21. juni 2006 - 16:31 #5
Du kunne bruge VedTastNed hændelsen i underformularens første og sidste felt.
I første felt tjekker du på Shift-Tab og i sidste felt på Tab.
Værdierne kan du finde ved midlertidigt at sætte en enkelt linie:
  Debug.Print KeyCode
ind i hændelsen (resultatet ser du i Immediate vinduet, Ctrl-G)
Derefter er det bare at bruge mugs' opskrift:
  If KeyCode=<værdien> then Me.Parent!FELTNAVN.SetFocus
Avatar billede t-johansen Juniormester
22. juni 2006 - 09:01 #6
Denne virker med "shift":

Private Sub Tekst45_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyShift Then Me.Parent!regnrlejebil.SetFocus
End Sub

men skal have dne til at virke med "Shift+tab":

Private Sub Tekst45_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyShift & vbKeyTab Then Me.Parent!regnrlejebil.SetFocus
End Sub

men så virker den ikke længere.

har også kun prøvet med tab så sidder den bare fast.

altså så kan man ikke tabulere sig ud
Avatar billede t-johansen Juniormester
22. juni 2006 - 09:15 #7
har også fundet denne kode på nettet:

If KeyCode = vbKeyTab Then

        If Shift And acShiftMask Then
            Me.Parent!regnrlejebil.SetFocus
       
        End If

    End If


og den virker dog hopper den et ekstra felt tilbage dvs den hopper til feltet før "regnrlejebil"

er der nogen logik i dette?
Avatar billede t-johansen Juniormester
22. juni 2006 - 10:18 #8
kan man få den til at lave et ekstra tabulator
Avatar billede t-johansen Juniormester
22. juni 2006 - 10:24 #9
et lille problem mere:

hvad så hvis man skal fra hovedform og shift tab ind i subform til et specifikt felt.

har prøvet med denne:

Private Sub fradato_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyTab Then

        If Shift And acShiftMask Then
            Me.test_kontrakt_bruger_kort!kortudstedt.SetFocus
     
        End If

    End If
End Sub

men det virker ikke.
Avatar billede t-johansen Juniormester
22. juni 2006 - 12:12 #10
Jeg er lige afvist jeres svar, selvom de er delvis rigtige, da jeg ikke har løst problemet helt endnu. Evt kig i de sidste 3 kommentar.

men i skal nok få lidt kredit for jeres svar ;-)
Avatar billede fdata Forsker
22. juni 2006 - 21:05 #11
Har nu testet - og opskriften er korrekt. Der mangler bare en lille ting:

Private Sub FørsteFelt_KeyDown(KeyCode As Integer, Shift As Integer)
  If KeyCode = vbKeyTab And Shift <> 0 Then
    Me.Parent!Felt2.SetFocus
    KeyCode = 0
  End If
End Sub

Private Sub SidsteFelt_KeyDown(KeyCode As Integer, Shift As Integer)
  If KeyCode = vbKeyTab And Shift = 0 Then
    Me.Parent!Felt2.SetFocus
    KeyCode = 0
  End If
End Sub
Avatar billede t-johansen Juniormester
22. juni 2006 - 22:35 #12
takker, kigger på det i morgen, har ikke databasen her.
Avatar billede t-johansen Juniormester
23. juni 2006 - 08:29 #13
Det var bare perfekt, dog et lille spørgsmål mere, hvis du har tid.

Me.Parent er refernce til hovedformularen, hvad hvis det skal gå den andne vej, altså fra hoved formular til sub formular?

Min pointe er at når man tabulerer baglæns, så lige såsnart man tabulerer fra hoved til sub, starter den i første felt frem for sidste felt.


Den sidste del du lavede er der ikke brug for da den i forvejen tabulere normalt videre ud af sub til hoved formular.
Avatar billede fdata Forsker
23. juni 2006 - 12:33 #14
Så kan du bruge:
  Me.<SubformNavn>.SetFocus
  DoCmd.GoToControl "<FørsteFeltNavn>"
Avatar billede t-johansen Juniormester
23. juni 2006 - 14:59 #15
fdata svar og du får point


og god weekend
Avatar billede fdata Forsker
24. juni 2006 - 16:38 #16
Et svar.
Avatar billede fdata Forsker
24. juni 2006 - 16:38 #17
Doh! Et svar.
Avatar billede t-johansen Juniormester
26. juni 2006 - 08:07 #18
Lidt interessant er det at lige så snart man begynder på at "kode" sig ud at tabulering, så skal man gøre det hele vejen igennem, fra til og fra subform, mv.
Avatar billede fdata Forsker
26. juni 2006 - 17:21 #19
Du har ramt lige ned i en af Access svage sider. Der er et par steder, hvor tastaturet ikke opfører sig som forventet. Microsoft mener tilsyneladende at "du kan da bare bruge musen". Men nu kender du da vejen frem ...

Tak for point  ;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