Avatar billede fuskeren Nybegynder
19. januar 2006 - 10:29 Der er 7 kommentarer og
1 løsning

Dataafhængig underformular

Hej alle
Jeg har et lidt specielt spørgsmål, er det muligt at oprette en dataafhængig underformular i en formular. Dataafhængig skal forståes på den måde at hvis data i et felt "DATA" er "a" skal underformular A åbnes og hvis data i samme felt, er ”b” skal underformular B åbnes. Det vanskelige ligger i at der kun skal sidde en underformular i formularen. Dvs. at underformular A automatisk udskiftes med underformular B når data skifter fra "a" til "b".

Jeg har tidligere lavet noget tilsvarende med hjælp fra eksperten/mugs, men her blev aktiveret en knap som åbnede formular A,B,C eller D alt efter den aktuelle date i et bestemt felt. Koden er her:

Select Case data
Case Is = "a"
DoCmd.OpenForm "form-a"
Forms![form-a]!Id.SetFocus
DoCmd.FindRecord Me!Id
Case Is = "b"
DoCmd.OpenForm "form-b"
Forms![form-b]!Id.SetFocus
DoCmd.FindRecord Me!Id
End Select

Er det muligt at omskrive koden så den kan åbne/udskifte forskellige underformular alt efter date i et bestemt felt ?

På forhånd tak.
Avatar billede terry Ekspert
19. januar 2006 - 10:33 #1
In the main forms On Current event you could try and change the sub form object SourceObject property to the new form

Me.SubFormObject.SourceObject = "NameOfForm"
Avatar billede terry Ekspert
19. januar 2006 - 10:35 #2
The sub form is contained in a Subform/Subreport object and you can just replace the SourceObject property to the form you want to show.
Normally this will have the same name as the form but this is not necessary.
Avatar billede fuskeren Nybegynder
19. januar 2006 - 11:54 #3
Hej Terry

Jeg tror ikke jeg helt forstår hvad du mener, vil du prøve at sætte det ind i koden.
Avatar billede terry Ekspert
19. januar 2006 - 12:26 #4
The code example you gave was for opening another form, so it isnt the same when using sub forms.

First find the name of the subform/Sub report object. If you click on the edge of the sub form this should select it. Then in the properties select the All tab where you can see the name propery. This is what you want. You will also see the Source Object property. This shows the name of the actual sub form which is in Sub form/sub report object.

In the main forms On Current event you now need some code something like this.


Select Case data

  Case Is = "a"

      Me.X.SourceObject = "Form-a"

  Case Is = "b"

      Me.X.SourceObject = "Form-b"

End Select

If the main form and Sub form is linked on the ID fields then the sub form will only show the related records.

Hope that helps, if not you are welcome to sen dme your database and I'll take a look as soon as I have a bit of time.

eksperten@NOSPAMsanthell.dk

remove NOSPAM
Avatar billede terry Ekspert
19. januar 2006 - 12:27 #5
forgot to say thayt you need to replace X in Me.X.SourceObject with th ename you found in the properties
Avatar billede fuskeren Nybegynder
19. januar 2006 - 13:17 #6
Hej Terry

Jeg beklager men jeg kan ikke få det til at virke, jeg har forsøgt med din kode indsat "Ved aktuelt" på hovedformen og udskiftet X med navnet på postkilden, men uden andet resultat end fejl. Jeg tager imod dit tilbud og sender dig en lille prøvedatabase. Denne database har en kode "Ved aktuelt" som får formularene "form-a" og "form-b" til at poppe op alt efter om data i feltet "data" er a eller b.

Det der skal ske er, at underformularen skal være baseret på henholdsvis form-a eller form-b, alt efter om data i datafeltet "data" er a eller b.

På forhånd tak
Avatar billede fuskeren Nybegynder
19. januar 2006 - 14:40 #7
Tak for hjælpen terry. Nu virker det.
Avatar billede terry Ekspert
19. januar 2006 - 14:43 #8
selv tak

The only code needed is on the main form, I removed the code from form-a
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