Selectiefilter toepassen in een Rapport op een tekstveld in Acces 2002

Status
Niet open voor verdere reacties.

Snamfoh

Gebruiker
Lid geworden
2 dec 2006
Berichten
36
Ik wil in de code van een knop voor het tonen van een rapport een filter inbouwen zodat bij een leeg tekstveld van een E-mailadres de records worden overgeslagen en dus niet getoond, dat werkt echter niet, ik krijg een melding Syntaxisfout.

Wat ik gedaan heb:
Code:
Dim strFilter as String
StrFilter = "E-mail  "" "
DoCmd.penReport stDocname, acPreview, ,strFilter

Snamfoh:shocked:
 
Laatst bewerkt door een moderator:
Klopt je filter wel? Volgens mij klop StrFilter = "E-mail "" " niet. Dubbele quootjes achter elkaar en zo...
 
Bakk4318

De stDocName = "Deelnemers aan de Reunie"


Octafish

Kan zijn dat het Filter niet klopt met dubbele quotes, maar in een numriek veld werkt het wel. Ik zoek dus een oplossing voor een tekstveld!
 
Even voor de duidelijkheid: ik zie echt een spatie in je filterstring; als je een numerieke waarde wilt filteren mag dat toch echt niet... Wat wil je eigenlijk filteren? In mijn ogen zou een filter er zo uit moeten zien voor een numeriek veld: strFilter="Email=0" of "Email=-1", er vanuit gaande dat je een selectievakje gebruik voor de email optie. Ander numeriek voorbeeld: strFilter="KlantID=" & Me.cboKlantID.Value als je filtert op een waarde uit een formulier.
Bij een Tekstfilter heb je een extra quootje nodig:strFilter="KlantNaam='" & Me.txtKlantNaam.Value & "'"
Ik zie geen problemen met je rapportnaam overigens :)
 
Ik heb op een formulier twee knoppen waarmee ik rapporten toon.
In het ene rapport filter ik records met de nummerieke waarde 0 in veld AantalDeelnemers uit met deze code:
stFilter = "AantalDeelnemers > 0"
Dat werkt goed alleen de records waar de waarde hoger is dan 0 worden getoond

Nu wil ik op een soortgelijke manier in een ander rappport records waar het tekstveld Email leeg is (Geen e-mail adres)
er uit filteren en gebruikte als code:
stFilter = "Email <> """ maar dat werkt dus niet.
De code stFilter = "Email=" & Me.Email.value & "" geeft echter ook een melding syntaxisfout

Het gaat inderdaad om de juiste sytaxis, maar die heb ik tot nog niet gevonden.

Bob
 
Dat stFilter = "Email <> """ niet werkt, klopt wel; je bent in een bekende val getrapt: de werking van het dubbele aanhalingsteken. Dat werkt namelijk als begin- en eindstop van een tekststring. Als je een " in de tekst zelf wilt hebben, moet je Access dus om de tuin leiden. Dat kan door de ASCI code te gebruiken, het dubbele teken te vervangen door een enkele, of het dubbele als een tekst-teken te laten interpreteren. De string ziet er dan respectievelijk als volgt uit:

stFilter = "Email <> " & Chr(37) & Chr(37) (kan zijn dat het 34 moet zijn i.p.v. 37)
stFilter = "Email <> ''" (twee enkele quootjes gevolgd door een dubbele)
stFilter = "Email <> """"""
Probeer er één uit, zou ik zeggen...
 
Bravo! De truc met de Ascii-tekens werkt!
Ik heb nu de volgende code gebruikt: stFilter = "Email <>" & chr(34) & chr(34)
Allen de deelnemers met een e-mailadres worden getoond.

Hartelijk dank

Bob
 
Zoals ik al zei, ik verwissel 37 en 34 altijd ;)
Mag je de vraag nog op Opgelost zetten met de link rechtsonder...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan