Avatar billede svjensen Nybegynder
06. maj 2010 - 08:07 Der er 7 kommentarer

Håndtering af flere niveauer af data i formular

Jeg har behov for at kunne præsentere flere niveauer af data i en formular, men har lidt problemer når jeg har flere end tre.

Jeg har lavet et simpelt eksempel, som kan hentes her: http://www.vinther-jensen.dk/access/several_levels.mdb

I formularen 'frmListe simpel' er et eksempel på, hvordan jeg ønsker at kunne vælge en given værdi i en liste, som så definerer de data, der præsenteres i underformularen. Det virker efter hensigten.

Problemet opstår, når jeg ønsker et tredje niveau.
I formularen 'frmListe kompleks' er jeg begyndt på dette.
Mit første problem, er, at jeg ikke kan få indholdet i listen til at følge den valgte post på 'master' niveau.
Jeg tænker, at det kan løses ved at inkludere de tilknyttede data på 'parent' niveau i en forespørgelse, men er usikker på, hvordan det bør sættes op.

Dertil kommer så, at underformularen stadig skal følge valget på listen.

/Søren
Avatar billede terry Ekspert
06. maj 2010 - 08:47 #1
I'm not sure I understamd the problem.

On 'frmListe kompleks' you have a TAB control with tow tabs. The second tab (Side6) contains the same objects as the form 'frmListe simpel'. The first TAB (Side5) contains data from the mastre table showing one record at a time.

The Row Source for the listbox on Side6 is set

"SELECT Parent.uid, Parent.MasterID, Parent.Titel FROM Parent WHERE Parent.uid=uid;"

so that it follows the records on Side5. An dthsi does exactly that. If you use the record navigation buttons on Side5 you can see that the listbox selection also changes.And the sub form also changes.

If you also need to be able to choose from teh listbox. Then I would suggest that you do it in code.

When you move to a new record on Page5 you use code to select the record in the listbox.
Avatar billede nih Novice
06. maj 2010 - 08:54 #2
Du kan lave det som 3 subforms

subFrmMaster
subFrmParrent
subFrmChild

subFrmMaster:
OnCurrent:
Me.Parent!subFrmParrent.Requery

subFrmParrent:
Underordnedefelt: masterId
Overordnedefelt:Form!subFrmMaster.Form!uid
OnCurrent:
Me.Parent!subFrmChild.Requery

osv....

Niels
Avatar billede svjensen Nybegynder
06. maj 2010 - 12:39 #3
Terry, (#1)

Den liste der vises på 'Side6' i lstParent er den komplette liste over poster i tabellen 'Parent'. Da denne er koblet til tabellen 'Master', skal kun de poster, der har 'MasterID' der er lig med den valgte master post vises (som jo vælges vha. navigationsknapperne under formularen). Det er det, jeg forsøger med den 'SELECT' query du henviser til (Row source), men det virker ikke.

Jeg har justeret en smule i eksempelfilen, så man nu kan se hvilke felter der vises i 'lstParent'. (Se link i oprindeligt indlæg).

Når jeg vælger en ny post via navigationsknapperne, hopper den til næste post i lstParent, men af en eller anden grund kigger den på uid fra Parent, fremfor MasterID.

Håber det giver mening.
Avatar billede svjensen Nybegynder
06. maj 2010 - 12:46 #4
Forsøgte at ændre min query for lstParent til:

"SELECT Parent.uid, Parent.MasterID, Parent.Titel FROM Parent WHERE Parent.MasterID=uid;"

hvilket betød, at der nu kun vises én post i lstParent.

Til gengæld er min Child subform nu tilsyneladende koblet til valget af master post.
Avatar billede terry Ekspert
06. maj 2010 - 13:54 #5
Can you replace the link with the newest dB?
Avatar billede svjensen Nybegynder
06. maj 2010 - 14:03 #6
Justeret eksempel uploadet - samme link som tidligere (http://www.vinther-jensen.dk/access/several_levels.mdb)

Jeg har arbejdet lidt videre med Niels' ide om flere subforms, hvilket ser ud til at virke (den nye formular hedder 'frmListe kompleks subforms').
Eneste problem er, at min Child underformular starter ud med at melde en fejl ('#Fejl').
Når jeg vælger en ny post (enten for master eller parent), så opdaterer den sig som den skal, men altså ikke indledningsvis.
Avatar billede svjensen Nybegynder
06. maj 2010 - 14:06 #7
Fik løst sidstnævnte problem ved at indsætte:
Me!subFrmChild.Requery

for 'Form_Open'

Jeg tester det igennem en gang eller to mere inden jeg lukker spørgsmålet.
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