Foutmelding bij filteren

Status
Niet open voor verdere reacties.

Bentm

Gebruiker
Lid geworden
9 jun 2010
Berichten
24
Hoi,

Ik pas bijgevoegd filter toe, maar krijg bij het invoeren van iets fouts (bijv. dfjjofao) een foutmelding, terwijl ik die foutmelding bij een ander soortgelijk fiter niet krijg.... Weet iemand hoe dit komt??

HTML:
Dim sFilter
    sFilter = "[organisatienaam] Like ""*" & Me.Tekst22.Text & "*"""
    Me.Filter = sFilter
    Me.FilterOn = True
    Me.Tekst22.SelStart = Me.Tekst22.SelLength

de foutmelding luidt:

Fout 2185 tijdens uitvoering:

U kunt alleen verwijzen naar een eigenschap of een methode voor een besturingselement als het besturingselement de focus heeft.
 
Je kunt de eigenschap Text alleen gebruiken bij objecten die de focus hebben. Ofwel de focus verplaatsen met Me.Text22.Setfocus, of de eigenschap Value gebruiken, dan werkt het zonder Setfocus.
 
Hoe moet ik dit precies doen... Ik heb zitten kijken waar ik hem op value kan zetten maar dit zie ik niet. En moet ik gewoon tussen de code me.tekst22.setfocus typen?? Zou je dit anders in mijn eerdere stukje code kunnen aangeven?

Thanx
 
Krijg je zoiets:
Code:
 Dim sFilter
    Me.Tekst22.SetFocus
    sFilter = "[organisatienaam] Like ""*" & Me.Tekst22.Text & "*"""
    Me.Filter = sFilter
    Me.FilterOn = True
    Me.Tekst22.SelStart = Me.Tekst22.SelLength

Je wilt waarschijnlijk 'live' alle getypte tekens afvangen? Dat moet inderdaad met de eigenschap Text. Met Value lees je de waarde uit als bijvoorbeeld het tekstvak wordt verlaten. De code ziet er dan zo uit:
Code:
sFilter = "[organisatienaam] Like ""*" & Me.Tekst22.Value & "*"""
Voor Value hoef je dus de focus niet op het object te zetten, met Text wel.
 
Ik krijg nog steeds de melding. Onderstaande code is ingevoerd... Ik heb wel nog een andere textfilter in het formulier opgenomen. Heeft dit toevallig nog consequenties? Dit is mijn code:

HTML:
Private Sub Keuzelijst_met_invoervak25_Change()

Dim sFilter
    sFilter = "[ProductIDSK] Like ""*" & Me.Keuzelijst_met_invoervak25.Text & "*"""
    Me.Filter = sFilter
    Me.FilterOn = True
    Me.Keuzelijst_met_invoervak25.SelStart = Me.Keuzelijst_met_invoervak25.SelLength

End Sub

Private Sub Knop18_Click()
On Error GoTo Err_Knop18_Click


    DoCmd.Close

Exit_Knop18_Click:
    Exit Sub

Err_Knop18_Click:
    MsgBox Err.Description
    Resume Exit_Knop18_Click
    
End Sub

Private Sub Tekst31_Change()
 
 Dim sFilter
    Me.Tekst31.SetFocus
    sFilter = "[Organisatienaam] Like ""*" & Me.Tekst31.Text & "*"""
    Me.Filter = sFilter
    Me.FilterOn = True
    Me.Tekst31.SelStart = Me.Tekst31.SelLength

End Sub
 
Hoe zet je de code in de Code opmaak? Het ziet er een beetje onoverzichtelijk uit ;)
Wat betreft de vraag, eerst een wedervraag: waarom gebruik je de Change op de keuzelijst? Ik neem aan dat je met de keuzelijst toch een specifieke waarde wilt laten selecteren. Wil je op een deel van een veld, dan kun je daar beter een tekstvak voor maken, lijkt mij.

Verder zie ik dat je de filters steeds op basis van één zoekveld maakt; is dat de bedoeling, of wil je de filterstrings kunnen combineren?
 
Ik heb inderdaad de waarde bij de keuzelijst gewijzigd naar "after udate" ... bij het tweede zoekveld wil ik kunnen zoeken op delen. Filterstring is niet per ce nodig (wel handig, maar met mijn beperkte skills is het allemaal net even wat lastiger).

De opmaak is gewoon een resultaat van mijn kunne...

Sorry, ben allang blij dat ik iets weet te realiseren :(
 
Nog een toevoeging, ook na het wijzigen bij het ene, bleef de foutmelding ongewijzigd ....
 
Kijk eens in bijgaand voorbeeldje; daar heb ik een filterformulier gemaakt waarin je op basis van meerdere tekstvakken kunt filteren. Misschien kun je er wat mee...
 
Die heb ik al een keer gezien inderdaad... kom er alleen niet verder mee. Het enige wat bij mij nog fout gaat is dat het filter het prima doet, totdat ik iets intype wat niet herkend wordt. Dan krijg ik een foutmelding. Het vreemde is, is dat ik in een ander formulier met precies dezelfde functie en opzet wel het gewenste resultaat krijg. Dus gewoon typen wat je wil zonder foutmeldingen te krijgen.

Ik heb nu inderdaad setfocus bij de code gezet, maar hij blijft toch nog foutmeldingen geven. Weet je hier de oorzaak van?
 
Wat bedoel je met iets intypen dat niet herkend wordt? Dat je een filterstring krijgt waar geen records uit komen?
 
Nee, ik bedoel dat wanneer ik een bij wijze van spreken een naam intype die in de database voorkomt. Dan wordt deze er uit gefilterd. Voer ik een naam in die niet wordt herkend, dan geeft hij meteen de eerder genoemde foutmelding.... Dus wanneer ik zoek op bijv "Den Bosch" is er niets aan de hand, maar maak ik een typefout bijv. "Denm Bosch" dan geeft hij meteen een foutmelding (eigenlijk kun je spatie Bosch al niet eens meer typen omdat de fout dan al is gemaakt...) Dit geldt ook voor het filter met de selctielijst. Wanneer ik uit deze lijst een waarde kies die al in de tabel is ingevoerd dan geeft dit geen problemen, kies eik een waarde die er nog niet in voor komt, dan geeft hij wederom een foutmelding...

What can I Do! :confused:
 
Maak er eens een voorbeeldje van, want het is lastig reproduceren...
 
Ik hoop dat je hier iets mee kan. Eerste is listbox.. die wil ik kunnen gebruiken om iets te selecteren en dat alles met die waarde getoont wordt. Daarnaast wil ik graag met een druk op het selectieknopje kunnen filteren op alles wat aan of uit staat, en als laatste een filter in een tekstveld, welke ook gedeeltes kan filteren... Ik heb echt een ontzettend uitgekleed bestand bijgevoegd anders lukte het niet.
 

Bijlagen

Je keuzelijst is eigenlijk een omgebouwd tekstvak, zo te zien, dat niet is gekoppeld aan een gegevensbron. Vandaar dat je hem ook kunt gebruiken als tekstvak. Ofwel je moet er een echte keuzelijst van maken, ofwel gebruiken als tekstvak, zou ik zeggen.
Het tweede zoekveld kijkt naar een verkeerd veld, als ik het zo bekijk. In de tabel waarin je zoekt heb je wel het veld [OrganisatieIDSK], maar je zoekt in het veld [Organisatie]. En dat he je niet. Dus daar zou het probleem kunnen liggen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan