cbo zoeken in subform werkt niet

Status
Niet open voor verdere reacties.

dinoshop

Terugkerende gebruiker
Lid geworden
8 sep 2000
Berichten
1.100
ik maak gebruik van een cbo bok en die moet filteren in subform factuurdetail.
alles lijkt goed te staan alleen blijft die aangeven dat Type moet worden in gevuld dit is dus een bestaand veld in sub factuurdeatil.

Code:
Private Sub CboFilter_AfterUpdate()

If IsNull(Me.CboFilter) Then
        Me.FilterOn = False
    Else
    
         Me.Filter = "Type = """ & Me.CboFilter & """"
         Me.FilterOn = True
    With Me.factuurdetail.Form
        .Filter = sfilter
        .FilterOn = True
        End With
        
    End If
    
End Sub

waarom filter hij niet .
 
Ik denk dat ik het wel snap:
Code:
         Me.Filter = "Type = """ & Me.CboFilter & """"
Dit is een filter op basis van een tekstveld; weet je zeker dat je uit de keuzelijst geen getal ophaalt? Wat zegt dit?
Code:
         MsgBox Me.CboFilter
 
mag ik je eens vragen hooe dat nu precies zit met die dingen zijn daar regels voor te vinden bv "" is getal ; "'" is bv letters .
ik snap er niks meer van
 
ik heb er dit van gemaakt en denk dit zou het moeten zijn was niet zo dat die geen fout melding geeft maar alleen mijn subform leeg maakt.
Code:
Private Sub CboFilter_AfterUpdate()
Dim strWhere As String

If IsNull(Me.CboFilter) Then
     Me.FilterOn = False
     Else
     
    If Not IsNull(Me.CboFilter) Then
        strWhere = strWhere & "([ID] = " & Me.CboFilter & ") AND "
    
          Me.FilterOn = True
          MsgBox Me.CboFilter
    With Me.factuurdetail.Form
        .Filter = sfilter
        .FilterOn = True
        End With
        
   End If
  End If
End Sub
 
Het is eigenlijk heel simpel: je kunt een vergelijking (want dat is het) maken op verschillende veldtypes: getal, datum en tekst. Die hebben allemaal hun eigen stringvorm.
Voor getal heb je geen toevoeging nodig:
Code:
     Me.Filter = "Type =" & Me.CboFilter
Tekst leg je vast tussen aanhalingstekens. Die mogen enkel of dubbel zijn. Omdat de dubbele een gereserveerd teken is, moet je aan Access doorgeven dat je een dubbele gebruikt. Dat doe je door het aanhalingsteken te herhalen. Dus in deze code
Code:
     Me.Filter = "Type = [SIZE=5][B][COLOR="#FF0000"]"[/COLOR][COLOR="#0000FF"]"[/COLOR][/B][/SIZE]" & Me.CboFilter & "[SIZE=5][B][COLOR="#FF0000"]"[/COLOR][COLOR="#0000FF"]"[/COLOR][/B][/SIZE]"
Is de rode " het 'voorloopteken, en de blauwe " het teken dat je te zien krijgt. Elke string die je definieert staat zelf ook weer tussen dubbele aanhalingsteken, en daarom zet je aan het eind van de code dus & """" neer: String openen, 2 dubbele aanhalingstekens, en string sluiten.

Voor het gemak mag je de dubbele ook vervangen door een enkele, en dan hoef je dat teken niet te herhalen. Je krijgt dan een eenvoudigere string:
Code:
     Me.Filter = "Type = '" & Me.CboFilter & "'"

En dan kun je nog op datums filteren, en dan heb je een hekje (#) nodig. Het filter ziet er dan zo uit:
Code:
     Me.Filter = "Type = #" & Me.CboFilter & "#"

Duidelijker zo?
 
das mooi ga er mee spelen print dit uit en hang het voor me neer .
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan