Avatar billede puppetmaster Nybegynder
23. august 2002 - 08:56 Der er 13 kommentarer og
1 løsning

VBA & formularer

Jeg har en formular med 2 felter (og én knap), 1. felt kaldet "stilling", 2. felt kaldet "navn" (i egenskaben "bookmark" for felterne).
Jeg håbede at nedenstående kode ville springe til det første felt, når der blev trykket på knappen, men i stedet springes der til "feltet efter", hvilket er feltet "navn". HVORFOR? Og hvordan skal koden se ud hvis markøren skal stoppe i "stilling"? Er det muligt at lave et eller andet henad:
ActiveDocument.formfields.StepOneTabBack


Private Sub CommandButton1_LostFocus()
  ActiveDocument.FormFields("stilling").Select
End Sub
Avatar billede jkrons Professor
23. august 2002 - 15:45 #1
Hvorikke bare bruge Click hændelsen. Det virker fint hos mig uansrt hvilken rækkefølge felterne ligger i.

Private Sub CommandButton1_Click()
  ActiveDocument.FormFields("stilling").Select
End Sub
Avatar billede puppetmaster Nybegynder
26. august 2002 - 08:32 #2
Det er der selvfølgelig en grund til:
Når brugeren udfylder formularen og kommer til knappen, skal det være muligt at tabulere videre, men her opstår problemet, for hvis jeg ingen kode har, tabuleres der til den del af formularen som det administrative personale skal udfylde, og som jeg helst ikke vil have brugeren til at "forvirres af" under udfyldningen af formularen...
Avatar billede puppetmaster Nybegynder
26. august 2002 - 08:40 #3
Jeg kan se at den rent faktisk stopper ved det første formularfelt, men "hopper videre"! Der er ikke anden kode som vedrører formularfelterne...
Avatar billede jkrons Professor
26. august 2002 - 11:39 #4
Hvis du kan sende mig dokumentet vil jeg gerne se på det i løbet af dagen. jkr@lyngby.nu
Avatar billede jkrons Professor
26. august 2002 - 17:33 #5
Jeg har kigget på dit dokument og har ingen gode bud lige nu på, hvorfor det virker ved klik men ikke ved LostFocus. Jeg arbejder videre med sagen.

En midlertidig løsning kan være at lade knappen "hoppe" til feltet før det ønskede, i eksemplet du har sendt til det sidste felt i formularen. Det løser i hvert fald problemet hos mig. Jeg kigger videre på årsagen.
Avatar billede rvm Nybegynder
26. august 2002 - 21:39 #6
Formularfelter er min specialitet *S* Prøv også at sende dokumentet til mig, så kikker jeg også på det.

Nu kender jeg ikke din problemstilling, men det lyder som om du gerne vil have dokumentet udfyldt i 2 omgange - første gang af en almindelig bruger og anden gang af det administrative personale, der udfylder nogle ekstra formularfelter. I det tilfælde kunne du låse formularfelterne (til det administrative personale) for indtastning (altså fjernehakket i tillad udfyldning) og derefter udarbejde en makro der låser alle felterne op, som det administrative personale bruger.

Forøvrigt så ser koden således ud *S*

Sub LåsFomrularfelterOp()
    For Each formf In ActiveDocument.FormFields
        formf.Enabled = True
    Next
End Sub
Avatar billede rvm Nybegynder
26. august 2002 - 21:40 #7
Ups - glemte lige min email: rvejemad@sca.csc.com *S*
Avatar billede jkrons Professor
27. august 2002 - 18:44 #8
puppetmaster> Fra Jay Freedman, Word MPV har jeg modtaget følgende forklaring, som samtidigt antyder, at der ikke er nogen løsning:

can explain what's happening, but I don't think I have any solution
for what you want to do...

When the command button has the focus and you press the Tab key, the
events occur in this order:

- The LostFocus procedure executes because the button is *about to* lose
focus. The "stilling" form field receives focus.

- Only now is the Tab keypress evaluated and acted upon, and focus is
transferred to the "next available object after the current one" -- that
is, the field after "stilling".


Idéen med at gå til det sidste felt i stedet er derfor nok det bedste jeg kan tilbyde dig.
Avatar billede jkrons Professor
27. august 2002 - 18:50 #9
Undskyld jeg sover. Du skal selvfølgelig bare ændre den til GotFocus. Så udløses så mister den ikke focus før tabulatorfunktionen er udfør og så hopper den til stilling uanset om du tabulerer til knappen eller klikker på den.
Avatar billede jkrons Professor
28. august 2002 - 16:31 #10
pupptetmaster->Kunne du bruge noget af det?
Avatar billede puppetmaster Nybegynder
29. august 2002 - 13:51 #11
Beklager min absense, men jeg kigger lige på det og melder tilbage...
Avatar billede puppetmaster Nybegynder
29. august 2002 - 13:54 #12
jkrons, du har ret i at den så hopper til næste felt, den gør det bare før man kan nå at klikke på mellemrums-tasten og sende formularen! :(
Avatar billede puppetmaster Nybegynder
29. august 2002 - 13:58 #13
Dit forslag med at gå til det sidste element på siden virker perfekt, så hopper den nemlig til første felt bagefter! Kanon! :)
Takker for hjælpen.
Avatar billede jkrons Professor
29. august 2002 - 14:58 #14
glad for at kunne hjælpe :-) Tak for point.
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
Tag et kursus i Word og øg effektiviteten

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