Avatar billede janriis Nybegynder
24. april 2007 - 08:24 Der er 17 kommentarer og
1 løsning

Forespørgsel på baggrund af listbokse

Hej
I min lille issue tracking database har jeg 3 listbokse med multiselect, hvis indhold skal ligge til grund for en forespørgsel.

A : Projekt
B : Severity
C : Status

Det skal være muligt at vælge alt fra alle 3, men også kun fra en af dem. Hvordan kan jeg gøre dette ?

Har prøvet med en "Like [Forms]![Defect rapport]![projektListboks]" og det virker med combo, men ikke med listbokse.
Avatar billede janriis Nybegynder
24. april 2007 - 08:27 #1
NB! Formularen hedder Defect rapport, og listboksene hedder :

ListboksProjekt, ListboksSeverity og ListboksStatus
Avatar billede jensen363 Forsker
24. april 2007 - 08:28 #2
Istedet for Like, skal du benytte syntaxen In() istedet ....

Jeg har en lille demodatabase som viser funktionen ( Multiselect ) som jeg kan maile til dig
Avatar billede janriis Nybegynder
24. april 2007 - 08:42 #3
ja tak, du må gerne maile den til janriisNOSPAM@the-dot.dk
fjern NOSPAM
Avatar billede jensen363 Forsker
24. april 2007 - 08:46 #4
Sendt
Avatar billede Slettet bruger
24. april 2007 - 08:53 #5
jensen363>må jeg også se.... spg.eksperten@gmail.com
Avatar billede jensen363 Forsker
24. april 2007 - 09:07 #6
spg > sendt :-)
Avatar billede Slettet bruger
24. april 2007 - 09:11 #7
!~)
Avatar billede janriis Nybegynder
24. april 2007 - 10:13 #8
Hej Jensen363: tak for db'en. Hvad bruges den txtCriteria_1 til ?
Avatar billede janriis Nybegynder
24. april 2007 - 10:29 #9
Sådan så virker det. hvordan retter jeg min forespørgsel til, hvis jeg har mere end en listboks ? I dit eksempel kunde det være at man både ville vælge kunder og f.eks geografisk placering.
Avatar billede jensen363 Forsker
24. april 2007 - 11:00 #10
Du benytter dig af kriteriet WHERE ...

Eksempel hvor du søger bestemte Kunder i bestemte postnr

WHERE (((tblKundekartotek.KundeNavn) In ("Kunde1","Kunde2")) AND ((tblKundekartotek.Postnr) In ("Postnr1","Postnr2")));
Avatar billede jensen363 Forsker
24. april 2007 - 11:03 #11
txtCriteria_1 benyttes til at opbygge den tekststreng som benyttes i In("tekststreng")
Avatar billede janriis Nybegynder
24. april 2007 - 11:27 #12
Takker. Det er perfekt :-)
Avatar billede jensen363 Forsker
24. april 2007 - 11:31 #13
Og tak for point :-)
Avatar billede janriis Nybegynder
24. april 2007 - 12:23 #14
Jeg var lidt hurtig her. Det virker ikke helt efter hensigten. Skal jeg lave ny txtCriteria textbox til nr 2 og 3 listboxe og derefter tilrette "EfterOpdatering" koden ?
Avatar billede jensen363 Forsker
24. april 2007 - 12:31 #15
Ja, du skal have een txtCriteria boks for hver søgekriterie
Avatar billede jensen363 Forsker
24. april 2007 - 12:34 #16
Programkoden er nok lidt langhåret ... men jeg håber du kan gennemskue den
Avatar billede janriis Nybegynder
24. april 2007 - 12:44 #17
den kode må du da godt sende. Jeg skal nok stille et nyt spørgsmål så du kan få point for den
Avatar billede jensen363 Forsker
24. april 2007 - 12:53 #18
Jeg refererede til den programkode ( AfterUpdate ) som ligger i formularen i det pågældende eksempel

Private Sub P_Valg_AfterUpdate()

Dim Q_1 As QueryDef, DB As Database
Dim Criteria_1 As String
Dim ctl_1 As Control  ' listbox
Dim Itm_1 As Variant  ' variable i listbox

Set ctl_1 = Me![P_Valg]

For Each Itm_1 In ctl_1.ItemsSelected
    If Len(Criteria_1) = 0 Then
        Criteria_1 = Chr(34) & ctl_1.ItemData(Itm_1) & Chr(34)
    Else
        Criteria_1 = Criteria_1 & "," & Chr(34) & ctl_1.ItemData(Itm_1) _
        & Chr(34)
    End If
   
Next Itm_1

If Len(Criteria_1) = 0 Then
    Itm_1 = MsgBox("Vælg én eller flere kunder eller '*'.", 0, "Intet valg")
Exit Sub

End If

    txtCriteria_1.Value = Criteria_1

Set DB = CurrentDb()
Set Q_1 = DB.QueryDefs("Multiselect_1")
Q_1.SQL = "Select * From tblKundekartotek Where [Kundenavn] In(" & Criteria_1 & _
    ");"
               
End Sub

Du skal have en noget nær identisk programkode for hver listbox du vil benytte i din udvælgelse ... eneste forskel er, at den skal levere data til hver sit kriterie

    Criteria_1 ændres til Criteria_2
    ctl_1 ændres til ctl_2
    Itm_1 ændres til Itm_2
    txtCriteria_1 ændres til txtCriteria_2

osv ...
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