Niet ingevulde waarde betrekken bij zoekquerie

Status
Niet open voor verdere reacties.

Ronaldxx

Gebruiker
Lid geworden
13 dec 2009
Berichten
198
Ik ben bezig met het maken van een zoek functie.
Deze bestaat simpel weg uit 5 mogelijke zoekcriteria die ik aanroep via een query.
Bij de criteria roep ik dus het gemaakte veld op als criteria. Waarna de resultaten getoond worden.

Nu loop ik tegen een probleem aan, want het is niet verplicht alle waarden in te vullen dat resulteert kolomen waar niet altijd een waarde in staat (Null?).
De query sorteert alles waar iets is ingevuld rijen met null waarden haalt hij er gelijk uit.
De criteria roep als volgt aan:
Like [Forms]![Zoeken]![qnameeiscode] & "*"

Ik zou dus graag willen dat hij gewoon door zoekt en niet door het lege veld gelijk de hele rij verwijderd uit de query.

Het probleem is lastig te omschrijven, ik hoop dat iemand er een antwoord op weet.
Een stuk van de database is te downloaden: Hier.
2003 versie hier is de meerdere waarden functie uitgehaald.. Databse 2003

Alvast bedankt,

Ronald
 
Laatst bewerkt:
Je geeft net iets te weinig informatie. Dus ik zal het gokken:

Als het goed heb jij zoiets:
Code:
Where tabelnaam.qnameeiscode Like [Forms]![Zoeken]![qnameeiscode] & "*"
Wat je mist is de Nz functie:
Code:
Where Nz(tabelnaam.qnameeiscode,"") Like Nz([Forms]![Zoeken]![qnameeiscode],"") & "*"
Null heeft de eigenschap nergens aan gelijk te zijn. Zelfs niet aan Null. Dus als je die omzet naar een lege string dan kan je die gebruiken om ergens mee te vergelijken.

Alle tekst voor het Like statement is gegokt dus dat moet je zelf even invullen.

HTH:D
 
Ik gebruik de volgende opbouw in het veld criteria

Like [Forms]![Zoeken]![qnamebeschrijving] & "*"

Deze criteria zoekt alleen op de eerste woorden. Dus als er een lap tekst staat zoekt hij niet naar een woord in de tekst.
En als er geen lap tekst is ingevuld toont hij de gehele record niet meer. Hij haalt hem er als waren uit.

Nadat ik
Where Nz(Opzoekquerie.qnamebeschrijving,"") Like Nz([Forms]![Zoeken]![qnamebeschrijving],"") & "*"
had ingevuld gebeurde er niks meer.

Hij moet gewoon in een specifiek veld zoeken naar een stukje tekst al is het 1 letter. En als er niks is ingevuld in het record de rest van de record gewoon tonen.
Ik weet niet of dit mogelijk is, maar dat is de bedoeling. Misschien is de opbouw wel geheel verkeerd.

In ieder geval alvast bedankt voor de hulp !

gr,
 
Laatst bewerkt:
het where statement moet je toevoegen in de SQL-view. als je die toevoegt in de QBE (query by example) dan krijg je een onzinnig sql statement.

HTH:D
 
Volgens mij moet je deze query gebruiken:
SELECT Eisen.Eiscode, Eisen.[Eis omschrijving], Eisen.[Type eis], Eisen.[Verificatie methode], Eisen.Frequentie, Eisen.[Referentie document], Eisen.[Verantwoording verificatie]
FROM Eisen
WHERE (((Eisen.Eiscode) Like "*" & [Forms]![Zoeken]![qnameeiscode] & "*") AND ((Eisen.[Eis omschrijving]) Like "*" & [Forms]![Zoeken]![qnamebeschrijving] & "*"));
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan