Filter op formulier met wildcard geeft vreemd gedrag

Status
Niet open voor verdere reacties.

Ruudh59

Gebruiker
Lid geworden
30 nov 2013
Berichten
56
Ik heb de volgende code onder een "filterknop" in een formulier om een filter op een subformulier te activeren:

Dim cond As String

cond = "[veld] = '" & Me![Keuzeveld] & "'"
SubForm.Form.Filter = cond
SubForm.Form.Requery
SubForm.Form.FilterOn = True

werkt uitstekend, maar nu met een wildcard...

Dim cond As String

Cond = "[veld] Like '*" & Me![Keuzeveld] & "*'"
SubForm.Form.Filter = cond
SubForm.Form.Requery
SubForm.Form.FilterOn = True

Het resultaat is een leeg SubForm. Dat klopt sowieso niet.
Maar bovendien kan ik ook bij de navigatie van het formulier het filter niet meer uit zetten, terwijl dat in het eerste geval wel uit en aan kan zetten.

Wat is hier aan de hand?
 
Je zou
Code:
Cond = "[veld] Like '*" & Me![Keuzeveld] & "*'"
kunnen vervangen door
Code:
Cond = "[veld] Like ""*" & Me![Keuzeveld] & "*"""
maar eigenlijk mag dat niet uitmaken.
 
Nee, dat maakt geen verschil, maar ik ben er achter.
Het werkt wel op deze wijze:

Cond = "[Veld]LIKE " & "'" & "*" & Me![Keuzeveld] & "*" & "'"

solved!
 
Dat is een bizarre oplossing, want jouw 'oplossing' is exact hetzelfde als degene die niet werkt! Probeer maar eens uit:
Code:
cond = "[Veld]LIKE " & "'" & "*" & Me![Keuzeveld] & "*" & "'" & vbLf
cond = cond & "[veld] Like '*" & Me![Keuzeveld] & "*'" & vbLf
MsgBox cond
Je zult zien dat de twee gegenereerde strings exact gelijk zijn. En dus of alle twee moeten werken, of niet. Dus als de ene het niet doet bij jou (bij mij maakt het dus neit uit welke variant ik gebruik, ze werken allebei) dan is er vermoedelijk iets anders aan de hand in je db, en ik zou dus wat tijd steken in het opzoeken van de echte oorzaak.
 
"MsgBox" heb ik ook tussendoor gebruikt om te kijken waar e.e.a. mis kon gaan en waar evt. verschillen zitten.
Mijn database is heel eenvoudig, een paar tabellen met een enkele relatie en geen voorwaarden op de invulling van velden.
Ook aan de inhoud zelf kan het niet liggen.
Ik heb zelfs dezelfde inhoud die 'MsgBox Cond' aangaf, "Hard" in de eigenschap 'filter' van het formulier gezet en dan is er ook een verschil in uitkomst.
Ik heb helaas wel vaker geen verklaring voor dit soort verschillen.
De wegen van Microsoft zijn soms ondoorgrondelijk.
Ik ben al blij dat ik het werkend heb gekregen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan