Zoeken naar een percentage

Status
Niet open voor verdere reacties.

oosthoek

Gebruiker
Lid geworden
7 jan 2013
Berichten
49
Hallo,

Ik ben bezig een zoekformulier te maken en vroeg me af of het mogelijk is te zoeken naar een percentage van de ingevulde waarde in het zoekformulier. Bijvoorbeeld men voert het getal 100 in het zoekformulier en wil als resultaat alle waardes die liggen tussen 90 en 100 of te wel 10% erboven en 10% er onder. Ik weet dat je kan zoeken met between maar dan moeten er 2 waardes in het zoekformulier ingevuld worden en moet zelf de rekensom van 10% maken. Het zoekformulier wat ik nu heb is gebaseerd op een query waarin ook op tekst gezocht kan worden.
 
Laatst bewerkt:
En toch kan het makkelijk met een query en één vraagveld.
Code:
PARAMETERS [Typ een waarde] Short;
SELECT Product, Omschrijving, Gewicht, Procent
FROM Product2
WHERE (Gewicht Between [Typ een waarde]*0.9 And [Typ een waarde]*1.1);
Het enige wat hier vast ligt is het percentage.
Overigens: als je 100 zoekt, en +- 10% wilt zien, dan vind je alles tussen 90 - 110. En niet 90 - 100 ;)
 
Dank je voor de snelle reactie Michel,

Ik ga er mee aan de slag maar weet nog niet zo goed hoe ik dit in de criteria moet zetten (ben nog een beginner).
 
In je criteriaregel zet je dit:
Code:
Between [Typ een waarde]*0,9 And [Typ een waarde]*1,1
En bij de parameters maak je deze parameter aan: [Typ een waarde], type Integer
Maak geen typfout (kopieëren en plakken dus) want anders maak je er twee of meer parameters van, en dan krijg je dus vaker een vraag in te vullen.
 
Dankjewel Michel,

Was al dagen aan het zoeken en proberen maar kon het niet vinden, mijn dank is groot
 
Toch nog een vraagje Michel, het zoekformulier bevat meerdere zoekvelden en het zoek veld voor het percentage werkt goed maar is nu verplicht wordt hier geen waarde ingevuld dan komen ook voor de overige zoekvelden geen resultaten meer kan dit nog opgelost worden??
 
Dan moet je een andere techniek gebruiken, en niet meer filteren op [Gewicht] (mijn voorbeeldje uiteraard), maar op een extra (onzichtbaar) veld met deze formule:
Code:
IIf([Typ een waarde] Is Null;Waar;[Gewicht] Between [Typ een waarde]*0,9 And [Typ een waarde]*1,1)
Dit veld krijgt dan als criterium:
Code:
<>Onwaar
Nu krijg je nog wel de vraag, maar als je niks invult, alle records te zien.
 
Wederom bedankt Michel,

Laatste vraag (voorlopig) als ik de zoekresultaten stel het zijn er 3, wil printen krijg je met deze code alleen het eerste record

Code:
   DoCmd.OpenReport "Onderdeel", acNormal, , "[id]= " & Me.id
 Me.FilterOn = True
 
DoCmd.Close acReport, "Onderdeel", acSaveNo

 Me.Filter = ""
 Me.FilterOn = False

De zoekresultaten worden in tabelvorm op het formulier weergegeven en deze is te breed om op een a4 te printen dus dacht ik d.m.v. een rapport de zoekresultaten te printen zodat de gegevens onder elkaar komen te staan.
 
Laatst bewerkt:
Likt mij logisch dat je één resultaat hebt; je filtert maar op één getal. Twee opties: of het filter uitbreiden, of het filter van het formulier gebruiken. De laatste optie is het makkelijkst.
 
Ik dacht dat ik zo filterde op het zoekformulier en hiermee ook de resultaten van het zoekformulier over zou zetten naar het rapport maar nu ik uw antwoord lees besef ik dat het zoekformulier eigenlijk geen id heeft. Hoe kan ik het filter uitbreiden naar meer resultaten.
 
Ik heb de oplossing gebaseerd op een query (daar had je het in de vraag ook over), maar hij is natuurlijk simpel over te zetten naar een formulier. Als dat is gebaseerd op dezelfde gegevensbron als je rapport, en je niet de query filtert, maar het formulier, dan zet je het filter als volgt over:

Code:
   DoCmd.OpenReport "Onderdeel", acNormal, , Me.Filter
 
Michel, als ik het zo toepas krijg ik alle resultaten van de query en niet de resultaten van het zoekformulier dat gebaseerd is op de query.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan