Avatar billede jannik79 Nybegynder
18. oktober 2005 - 11:03 Der er 6 kommentarer

Søgefilter i subform

Hej

Jeg har en access database med projekter - hvert projekt har en header og x-antal projectdetaljer under denne header.
I min access database har jeg en form hvorfra jeg har nogle søgefelter.
De fleste af søgefelterne åbner en anden form med et bestemt filter (udfra hvad der er skrevet i søgefeltet) hvor projektheader vises.
I denne form er der en subform, som viser projektdetaljer. Hvis der er flere detaljer kan man bladre igennem dem

Det jeg ønsker er, at tilføje et søgefelt hvor det er muligt at søge på ID for projektdetaljerne.

Hvordan kan jeg lige gøre det?

Lige nu har jeg lavet en løsning der åbner formen med projektheader hvori ID for projektdetaljerne indgår. Men det betyder, at jeg så (hvis jeg f.eks. har 5 projektdetaljer under headeren) at jeg skal bladre mig vej igennem subformen inden jeg finder de ønskede projektdetaljer (dem med ID jeg søgte på).

Er du nogen der kan hjælpe mig med en løsning?

På forhånden tak

Mvh. Jannik
Avatar billede jensen363 Forsker
18. oktober 2005 - 11:06 #1
Avatar billede mugs Novice
18. oktober 2005 - 11:09 #2
Ikke sikker på hvad du mener. Men du kan søge efter en værdi med denne:

Private Sub Kommandoknap20_Click()
Dim VARa As String
VARa = InputBox(Prompt:="Indtast kundenr.", Title:="Find kunde.", Default:="")
DoCmd.GoToControl "kundenr"
DoCmd.FindRecord VARa, acEntire, False, , True, acCurrent, True
End Sub
Avatar billede jannik79 Nybegynder
18. oktober 2005 - 12:37 #3
Beklager - men der er ikke rigtigt nogle af de to løsninger der kan bruges.

Måske kan din (Mugs) bruges hvis jeg modificerer den lidt.

Mine forms er opbygget således

Søgeform (indeholder søgefelter)

Projektform (projectheader)
|
  ->Subform (projectdetaljer)

I mine søge muligheder kan jeg søge på forskellige ting der står i projectheader - og det virker også fint nok med brug af filter funktionen.
Når jeg vælger søg fra søgeformen åbnes Projektformen med korrekt aktiveret filter.
Men det jeg ikke kan få til at virke er når jeg forsøger at søge på en bestemt post i projectdetaljer (som jo er i subformen).
Min nuværende løsning giver mig bare projektetheader hvor projektdetaljerne hører til - men det betyder som sagt at jeg så efterfølgende er nødt til at bladre gennem projektdetaljerne indtil jeg finder den korrekt detaljepost jeg søgte efter.

Håber det blev mere forståeligt

Mvh. Jannik
Avatar billede mugs Novice
18. oktober 2005 - 14:03 #4
Hvis du står i parentform (hovedformularen), og derfra vil søge i childform (underformularen), er du nødt til at sætte focus på childform inden søgningen:

Private Sub Kommandoknap20_Click()
Dim VARa As String
VARa = InputBox(Prompt:="Indtast kundenr.", Title:="Find kunde.", Default:="")
Me.UNDERFORMULARENS NAVN.SetFocus
DoCmd.GoToControl "FELT I UNDERFORMULAREN"
DoCmd.FindRecord VARa, acEntire, False, , True, acCurrent, True
End Sub

Denne linie:

DoCmd.GoToControl "FELT I UNDERFORMULAREN"

Sender dig til et bestemt felt i underformularen. Hvis det felt du skal søge i, er det første felt i tabulatorrrækkefølgen, er linien unødvendig.
Avatar billede Slettet bruger
18. oktober 2005 - 14:48 #5
mugs>er der nogen forskel på setfocus og gotocontrol i denne sammenhæng?~)
Avatar billede mugs Novice
18. oktober 2005 - 15:03 #6
spg > Du skal betragte en underformular som et objekt i objektet. Derfor skal du først sætte focus på det objekt du vil søge i, og derefter hvilket felt i objektet du vil søge i.
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