Avatar billede pdom Nybegynder
06. august 2007 - 12:30 Der er 11 kommentarer og
3 løsninger

Forskellig subforms skal vises efter valg i combo

Hej!

Jeg har en hovedformular med diverse subforms. I hovedformularen er der en combo-boks med 5 valgmuligheder, efter hvilken type anlæg kunden har.

Det jeg så gerne vil, er at der vises den subform der passer til valget i combo'en. Subformen skal ligge på samme "plads" i hovedformen.
Da det er meget forskellige data, der skal vises, kan jeg ikke bruge samme subform.
Er der en løsning på dette?? Og helst ikke for langhåret :-D

(Og sig til, hvis jeg skal prøve at skære det mere ud i pap)
Avatar billede jensen363 Forsker
06. august 2007 - 12:33 #1
Du kan godt vælge at placerer subform's oven på hinanden, og så benytte show/hide til visning af den subform der passer til din combobox valg
Avatar billede Slettet bruger
06. august 2007 - 12:39 #2
Noget der virker rigtigt godt er:

Form_Navnpådinhovedformular.NavnpådenUnderformularSomErSatIndEvtEnTomFormular.SourceObject = me.NavnPåKombo

Det skal så sættes på afterupdate eventen af din komboboks!~)

Du kan desuden sætte koden på OnCurrent...
Avatar billede jensen363 Forsker
06. august 2007 - 12:44 #3
Det hedder ikke show/hide, men Visible true/false :-) ... sorry

Private Sub Kombinationsboks_AfterUpdate()

    If Me.Kombinationsboks.Value = "Valg 1" Then
        Me.underformular1.Visible = True
        Me.underformular2.Visible = False
    End If
   
    If Me.Kombinationsboks.Value = "Valg 2" Then
        Me.underformular1.Visible = False
        Me.underformular2.Visible = True
    End If
   
End Sub
Avatar billede mugs Novice
06. august 2007 - 13:22 #4
jensen363's forslag burde fungere. Men i stedet for alle disse If--Then foretræker jeg en Select Case struktur. Den er meget nemmere at fejlfinde i og mere simpel:

Select Case NAVN PÅ COMBO
Case Is = "valg1"
Me.underformular1.Visible = False
Me.underformular2.Visible = True

Case Is = "valg2"
Me.underformular1.Visible = True
Me.underformular2.Visible = False

End Select
Avatar billede pdom Nybegynder
06. august 2007 - 15:30 #5
Jeg prøver mig lidt frem de næste par dage.

Tak for input foreløbig ;-)
Avatar billede Slettet bruger
06. august 2007 - 21:18 #6
Avatar billede Slettet bruger
06. august 2007 - 21:33 #7
Der er forresten flere ting, der spiller ind, når du skal sætte din formular op.

Er hovedformularen baseret på en tabel/forespørgsel, er det f.eks dine kunder. Hvis det er så skal du have dit valg gemt og en OnCurrent event til også at køre koden..

Er det den samme binding på alle formularer, for så kan du bruge den normale måde at binde hoved- og underformular sammen på. Hvis ikke så kan du f.eks. styre underformularen vha. kriterier i den forespørgsel, som underformularen bygger på..

Husk at forespørgsler med kriterier, som henviser til en af disse underformularer vil hedde: forms!hovedformularsNavn!NavnPåDenIndsatteUnderformular!FeltNavn
Dvs. at det er ikke navnet på den enkelte underformular, man refererer til, men navnet på den indsatte (evt. tomme) underformular!~)
Avatar billede pdom Nybegynder
08. august 2007 - 15:44 #8
Jeg har desværre ikke haft tid til at kigge ret meget på jeres forslag, men jeg synes selv at Mugs' ser mest fornuftig ud. Jeg skal bare have den "oversat" til mine egne navne.

Mugs--> Hvor skal koden lægges: På hovedformen eller på combo'ens VedAktuel??

Så I er altså ikke glemt ;-D
Avatar billede mugs Novice
08. august 2007 - 16:00 #9
I comboen's Afterupdate.
Avatar billede pdom Nybegynder
15. august 2007 - 12:39 #10
Har nu prøvet at kigge lidt på det. Har brugt mugs' forslag, men det virker ikke rigtig :-(

Min kode ser således ud:
------------------
Private Sub Central_AfterUpdate()

Select Case Central
Case Is = "Philips"
Me.TBLCentralPhilipsSubform.Visible = True
Me.TBLCentralSiemensSubform.Visible = False

Case Is = "Siemens"
Me.TBLCentralPhilipsSubform.Visible = False
Me.TBLCentralSiemensSubform.Visible = True

End Select

End Sub
--------------------
Jeg har så oprettet de 2 subforms på hovedformen, og lagt dem oven i hinanden.
Men det er kun Siemens (den jeg har lagt på sidst) der vises uanset, men uden data i, uanset valget i Comboen!?

Hvad gør jeg forkert?

PS: Den rigtige subform skal vises både ved nyoprettelser, og når jeg "bladrer" gennem posterne i hovedformen.

MVH
Peter
Avatar billede pdom Nybegynder
17. august 2007 - 11:14 #11
Er der virkelig ingen der kan hjælpe??
Jeg synes ellers altid at mugs og spg kæmper om at komme først med et svar.
Nå pyt, nu tager jeg på ferie i en uge, og så ser jeg om der er kommet et forslag, når jeg kommer tilbage.
Avatar billede mugs Novice
17. august 2007 - 11:28 #12
Jeg har afprøvet denne og den fungerer idet subforms bliver synlige afhængig af valget i combo:

Private Sub central_BeforeUpdate(Cancel As Integer)
Select Case central
Case Is = "philips"
Me.frm2.Visible = True
Me.frm3.Visible = False
Case Is = "siemens"
Me.frm2.Visible = False
Me.frm3.Visible = True
End Select
End Sub
Avatar billede Slettet bruger
03. januar 2008 - 13:18 #13
17/08-2007 11:14:14>!~)
Avatar billede pdom Nybegynder
14. marts 2008 - 08:44 #14
Jeg havde jo helt glemt, at jeg havde dette spørgsmål til at ligge :-(

Jeg besluttede mig for at droppe det med Subforms, da det gav nogle uhensigtsmæssigheder i systemet.

Så alle data ligger nu i 1 subform.

Men tak for indsatsen, begge 2
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