meerdere selecties/filters voor openen rapport

  • Onderwerp starter Onderwerp starter scw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
Een tekstvak filteren op leeg is simpel : strCheck & " ([SelectieA] & "" <> ""
 
Ja eigenlijk andersom dus, dus filteren op is 'niet leeg'?
 
Mag ook! Ik zei het inderdaad verkeerd; mijn voorbeeld was op een niet-leeg filter. Maar dat was dacht ik ook de bedoeling.
 
Sorry Octafish... dit formpje is een beetje een hoofdbreker voor mij :o Maar gelukkig nadert die wel al bijna perfectie. :cool:

Nu lijkt die het goed te doen alleen moet ik nog ergens haakjes weghalen/bijzetten, maar heb wat zitten goochelen, maar kom er niet achter waar :confused:

Heb nu dit staan:

Code:
    Else
        If Not Me.lboStadions = "" Then strWhere = "[Merk] = '" & Me.lboStadions.Value & "' "
        If Me.chkSelectieA = -1 Then strCheck = strCheck & " ([SelectieA] & "" <> "
        If Me.chkSelectieB = -1 Then
            If strCheck & "" <> "" Then strCheck = strCheck & " AND " Else: strCheck = " ("
            strCheck = strCheck & " [SelectieB] & "" <> "
        End If
        If Me.chkSelectieC= -1 Then
            If strCheck & "" <> "" Then strCheck = strCheck & " AND " Else: strCheck = " ("
            strCheck = strCheck & " [SelectieC] & "" <> "
        End If
    End If
    
    If strCheck & "" <> "" Then strCheck = strCheck & ")"

Maar ik krijg een syntaxisfout 3075. Waar zie ik het over het hoofd??

Nog even terugkomend op vraag 3: Wat als ik het lege tekstvak de ene keer

"Personenoverzicht " & [Stadion] wil geven als waarde

maar bij een andere selectie in het form

"Stadionoverzicht " bijvoorbeeld.

Wat is dan de beste manier? In het voorloopformpje meenemen of pas definiëren in het rapport zelf?

Nogmaals superdank voor de hulp hierbij,

scw :thumb:
 
Volgens mij staan de quootjes verkeerd. In VBA moet er dit staan: (pak één van de twee varianten, zou ik zeggen :) )

Code:
        If Not Me.lboStadions = "" Then strWhere = "[Merk] = '" & Me.lboStadions.Value & "' "
        If Me.chkSelectieA = -1 Then strCheck = strCheck & " ([SelectieA] <> " & Chr(34) & Chr(34)
        If Me.chkSelectieB = -1 Then
            If strCheck & "" <> "" Then strCheck = strCheck & " AND " Else: strCheck = " ("
            strCheck = strCheck & " [SelectieB] <> """""
        End If
        If Me.chkSelectieC = -1 Then
            If strCheck & "" <> "" Then strCheck = strCheck & " AND " Else: strCheck = " ("
            strCheck = strCheck & " [SelectieC] <> """""
        End If

Wat betreft je tweede vraag: Die kun je met een IF wel oplossen, denk ik. BIj de gebeurtenis <Bij Opmaken> van de kop- of detailsectie, afhankelijk van waar de tekst staat.
 
bijna...

:) Hij doet het nu beter!! Maar nog niet helemaal :( :

Hij filtert nu w�l twee filters als je twee selectievakjes A, B of C aanklikt. Echter, wanneer ik op een stadion filter �n nog ��n selectievakje, dan geeft die de melding:

Fout 3075 tijdens uitvoering:
]Ongeldig gebruik van ".", "!", of "()". in query expressie ([Stadion] = 'Stadion De Kuip' ([SelectieA] <> "")).

Hmmm...
 
Zoals je kunt zien in je tekst (ik zie overigens een hoop vreemde tekens...) van de query expressie 'Stadion De Kuip' ([SelectieA] <> "")) dat er een operator ontbreekt. Je hebt ofwel dit nodig: 'Stadion De Kuip' OR ([SelectieA] <> "")) ofwel dit: 'Stadion De Kuip' AND ([SelectieA] <> "")).
.
 
Laatst bewerkt:
Excuus... het blijft me niet lukken: ik zie niet goed wat je bedoeld, ook al heb je het gearceerd, ik plak even de originele code. Zou je het nog een keer goed kunnen arceren wat je nu precies veranderd, want ik krijg hem niet werkende :(:

Code:
Dim strWhere As String, strCheck As String
strWhere = ""
strCheck = ""

    If cboMerk = True And Nz(Me.lboMerken, "") = "" Then
        MsgBox "Geef het merk aan", vbInformation"
        Me.lboMerken.SetFocus
        Exit Sub
    Else
        If Not Me.lboMerken = "" Then strWhere = "[Merk] = '" & Me.lboMerken.Value & "' "
        If Me.cboKoelmotor = -1 Then strCheck = strCheck & " ([Koelmotor] <> " & Chr(34) & Chr(34)
        If Me.cboKraan = -1 Then
            If strCheck & "" <> "" Then strCheck = strCheck & " AND " Else: strCheck = " ("
            strCheck = strCheck & " [Kraan] <> """""
        End If
        If Me.cboLaadklep = -1 Then
            If strCheck & "" <> "" Then strCheck = strCheck & " AND " Else: strCheck = " ("
            strCheck = strCheck & " [Laadklep] <> """""
        
        End If
        End If
    
    
    If strCheck & "" <> "" Then strCheck = strCheck & ")"
    strWhere = strWhere & strCheck
    
    DoCmd.OpenReport "rptWagenparkOverzicht", acPreview, , strWhere
 
Ik kan een paar kleine dingen vinden. Of die het probleem veroorzaken, weet ik overigens niet. Maar dit zou moeten werken:

Code:
    If cboMerk = True And Nz(Me.lboMerken, "") = "" Then
        MsgBox "Geef het merk aan", vbInformation
        Me.lboMerken.SetFocus
        Exit Sub
    End If
    If Not Me.lboMerken = "" Then strWhere = "[Merk] = '" & Me.lboMerken.Value & "' "
    If Me.cboKoelmotor = -1 Then strCheck = strCheck & " ([Koelmotor] <> " & Chr(34) & Chr(34)
    If Me.cboKraan = -1 Then
        If strCheck & "" <> "" Then strCheck = strCheck & " AND (" Else: strCheck = " ("
        strCheck = strCheck & " [Kraan] <> " & Chr(34) & Chr(34) & ")"
    End If
    If Me.cboLaadklep = -1 Then
        If strCheck & "" <> "" Then strCheck = strCheck & " AND (" Else: strCheck = " ("
        strCheck = strCheck & " [Laadklep] <> " & Chr(34) & Chr(34) & ")"
    End If
Msgbox strCheck
    strWhere = strWhere & strCheck
  
    DoCmd.OpenReport "rptWagenparkOverzicht", acPreview, , strWhere
 
Ik zie inderdaad nog wel een probleempje...

Code:
    If Not Me.lboMerken = "" Then strWhere = "([Merk] = '" & Me.lboMerken.Value & "') "
    If Me.cboKoelmotor = -1 Then strCheck = strCheck & " ([Koelmotor] <> " & Chr(34) & Chr(34) & ")"
    If Me.cboKraan = -1 Then
        If strCheck & "" <> "" Then strCheck = strCheck & " AND (" Else: strCheck = " ("
        strCheck = strCheck & " [Kraan] <> " & Chr(34) & Chr(34) & ")"
    End If
    If Me.cboLaadklep = -1 Then
        If strCheck & "" <> "" Then strCheck = strCheck & " AND (" Else: strCheck = " ("
        strCheck = strCheck & " [Laadklep] <> " & Chr(34) & Chr(34) & ")"
    End If

    If strCheck & "" <> "" Then strCheck = " AND " & strCheck
    Dim tmp
    tmp=Inputbox("","",strCheck)
Dit lijkt mij beter. Maar check vooral de string die er uit komt :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan