Filteren

Status
Niet open voor verdere reacties.

Saalk

Gebruiker
Lid geworden
3 jan 2011
Berichten
85
Goede morgen.

Ik heb een database waarin ik mijn Cryptogrammen bewaar.
Om te voorkomen dat ik allemaal dubbele vragen krijg heb ik een filter die automatisch aanvult.
Werkt prima maar als ik de zin met 'begin dan geeft hij niets aan terwijl de vraag wel in de database aanwezig is.
Ik heb al geprobeerd in de eigenschappen om tekst met opmaak aan te zetten, dit brengt niet het gewenste effect.
Weet iemand misschien hier een oplossing voor.

Vrg Klaas
 
Ik snap je vraag niet helemaal: wat typ je precies in? En waarin? Een keuzelijst met invoervak? Een tekstvak?
 
Goedenavond

Het is een tekstvak met onderstaande gebeurtenisprocedure.

Als ik bijvoorbeeld deze zin zo schrijf: 't Ei geklutst aan het Duitse eten toevoegen daar gaat het in wezen om. dan wordt de zin niet gevonden.
Maar als ik hem zo schrijf: t Ei geklutst aan het Duitse eten toevoegen daar gaat het in wezen om. dan wordt de zin wel gevonden.
Het zit hem dus in het tekentje voor de t ' ik weet namelijk niet hoe dit heet.

Private Sub fltrCryptogrammen_Change()
Dim sFltr As String
sFltr = Me.fltrCryptogrammen.Text
strSQL = "SELECT Omschrijving, Woord, Len([Woord])AS Aant_Let, Datum, Tijd FROM Cryptogrammen WHERE (Omschrijving Like '" & Me.fltrCryptogrammen.Text & "*');"

With Me
.lstOmschrijving.RowSource = strSQL
.lstOmschrijving.Requery
End With
Me.fltrCryptogrammen.SelStart = Len(sFltr)
End Sub

Bvb dank.

Vrg Klaas
 
Het zit hem dus in het tekentje voor de t ' . Ik weet namelijk niet hoe dit heet.
Wat dacht je van: 'Enkel aanhalingsteken'? Niet te verwarren met: "; dat is het dubbele aanhalingsteken.
Maakt niet uit voor je vraag natuurlijk, want wat voor de enkele geldt, geldt ook voor de dubbele: aanhalingstekens zijn in VBA beschermde tekens, en die betekenen dus wat in Access. In beide gevallen vernaggelen ze een string waar ze in zitten. Daar is ten dele wat aan te doen, want je kunt de tekens wél uitlezen in een variabele bijvoorbeeld.
Jij gebruikt dus in je code het enkele aanhalingsteken in je filter, en dat betekent dat Access een zoekstring maakt van de tekst tot het volgende aanhalingsteken. Blijkbaar wil je dat niet, dus moet je de zoekstring niet tussen enkele aanhalingstekens zetten, maar tussen dubbele. In dat geval neemt Access alleen de tekst tussen de twee dubbele aanhalingstekens op in de string. Je krijgt dan, omdat het dubbele aanhalingsteken dus een beschermd teken is, de volgende constructie:
Code:
    strSQL = "SELECT Omschrijving, Woord, Len([Woord])AS Aant_Let, Datum, Tijd FROM Cryptogrammen " _
        & "WHERE (Omschrijving Like """ & Me.fltrCryptogrammen.Text & "*"");"
Let wel: dit lost het probleem met de enkele aanhalingstekens op, maar niet die van de dubbele. Als je dus een dubbele in je zoektekst hebt, krijg je daarmee hetzelfde probleem.
 
Dank u wel voor de snelle reactie.

Ja was niet erg snugger van me om de naam niet te kunnen bedenken voor een enkel aanhalingsteken.
Het werkt uitstekend daarvoor heel veel dank.
En wens u nog een fijne avond.

Vrg Klaas.
 
Je bent de eerste niet :). D'r zijn ook nog zat mensen die het een apostroph noemen. Hoef je bij de jeugd ook niet meer mee aan te komen :D.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan