Avatar billede jensch Nybegynder
16. november 2004 - 15:03 Der er 8 kommentarer og
1 løsning

Opdatering ved brug af faneblade på formular

Jeg har en formular som består af en række faneblade med andre formularer på. På disse formularer er der bla. en knap til valg af måned, den ligger en værdi i en variabel.
Problemstillingen er nu: Jeg står på et faneblad vælger f.eks. januar måned ved at trykke på knappen "januar" formularen opdateres og viser nu poster for januar måned. Så skifter jeg faneblad for at se andre data, men nu vises ikke januar, men den måned som var gældende da hovedformularen blev åbnet.
Altså er jeg nød til igen at trykke på knappen januar.
Jeg har en del forskellige variabler, og ønsker derfor at formularene opdateres med den nu gældende variabelværdi, hver gang jeg skifter faneblad.
Der skal altså være en hændelse, ved skift af faneblad som opdatere formularen på den valgte fane. Hvordan gør jeg det?
16. november 2004 - 16:32 #1
På fanebladets VedÆndring-hændelse kan du lægge koden.

Du kan samtidig spørge på hvilket faneblad, som er valgt således:

Select Me!Tab
    case 0  'første faneblad
        'kode
    case 1  '2. faneblad
        'kode
end select

Tab er navnet på hele fanebladet. Vær opmærksom på, at det ikke skal være den enkelte side, som du skal arbejde med, men altså hele faneblads-objektet
Avatar billede jensch Nybegynder
16. november 2004 - 16:45 #2
Tak det er fint, jeg har også fundet ud af det med fanebladobjektet. Nu er det så bare hvordan får jeg opdateret formularen, med andre ord hvordan ser koden ud der opdatere den enkelte formular?
16. november 2004 - 16:57 #3
Select Me!Tab
    case 0  'første faneblad
        Me!Suform1.Requery
    case 1  '2. faneblad
        Me!Suform2.Requery
end select
16. november 2004 - 17:44 #4
Hej Jensch,

Jeg kan næsten regne ud, at jeg ikke har forstået problemet korrekt. Jeg ved ikke helt hvordan du styrer, at du lige har klikket på januar?

Ville det ikke være en ide, hvis du placerede januar-knappen (og de andre måneder) uden for fanebladet og i stedet opdatrede alle underformularer på én gang?
Avatar billede jensch Nybegynder
16. november 2004 - 18:02 #5
jo det var også min første tanke. Grunden til at jeg bruger variabler, er at det ikke er i underformularernes forespørgsel der sorteres, men derimod i en underliggende forespørgsel. Der er nødvendigt..lang historie...
Det ville være fint med knapper uden for fanebladende som kunne opdatere underformularerne på en gang.
Ok jeg opdatere variablen og hvad så? Er det så Me!formnavn1.Requery, Me!formnavn2.Requery osv?
16. november 2004 - 18:12 #6
ja, men det er det navn, som underformular-objektet har (ofte det samme som formularen, men ikke nødvendigvis).

Me!Underfomrular.requery opdaterer kun formularen i henhold til de værdier, som allerede er defineret. Dvs at hvis du i mellemtiden har ændret en variabel, er det ikke sikkert, at det slå gennem. Men prøv...

En anden løsning er, at du kalder alle de andre Januar-knapper hver gang du klikker på én. Det kræver dog lidt benarbejde, når man har så mange knapper.

Princippet er, at alle cmdJanuar_Click-hændelserne skal gøres Public i stedet for Private. Herefter kan du fra formular1 kalde proceduren på formular2 således:

form_formular2.cmdJanuar_Click
Avatar billede jensch Nybegynder
16. november 2004 - 18:19 #7
Ok jeg prøver at "lege" lidt med. Vender tilbage !
Avatar billede jensch Nybegynder
18. november 2004 - 13:07 #8
Jeg har lavet en funktion der laver en genforespørgsel (DoCmd.Requery "")
Denne funktion kanlder jeg så ved change af faneblad, det virker perfekt!
18. november 2004 - 13:38 #9
Super! Og 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