Hoe krijg ik een waarde van op een formulier in een query als criterium?

Status
Niet open voor verdere reacties.

Flupken

Gebruiker
Lid geworden
6 jul 2007
Berichten
30
Hoy, ik heb deze vraag al eens gesteld. Een echte oplossing is er voor mij niet op gekomen.
Vandaar nog eens de vraag maar anders en duidelijker gesteld.

Ik heb een kleine database met tabellen, formulieren, query en etiketrapport.
De query geeft telkens 14 dezelfde waarden terug van elk record door een trukje die mij hier aangereikt werd.
Het rapport is gemaakt op basis van de query, die geeft mij 14 (dezelfde) waarden van alle records, net genoeg om ze af te drukken op een etikettenvel van 14 stuks.

Ik zou graag via een dropdownlijst in een formulier (of een andere methode) de keuze kunnen maken welk record ik wil afdrukken.
Daarom zou deze gekozen waarde moeten ingevuld worden als criterium in de query onder de betreffende kolom.
De db kan ik hier niet uploaden, ik kan ze wel naar email adressen sturen.

Grts, Filip.
 
Waarmee maak je die database? misschien is het een idee om even te googlen naar "variable %a%" waarbij %a% de variable is van het programma waarmee je die database maakt.;)

mvg
corstian
 
Waarmee maak je die database? misschien is het een idee om even te googlen naar "variable %a%" waarbij %a% de variable is van het programma waarmee je die database maakt.;)

mvg
corstian

Access 2007

Grts, Filip.
 
Met een simpele aanpassing in je query kun je de waarde uit je formulier als criterium in je query krijgen, zonder vba. Een voorbeeldje ziet er dan zo uit: (laat alleen de filtering zien)
Code:
WHERE ((IIf(IsNull([Forms]![B][COLOR=blue][fSelectie]![cboRenner][/COLOR][/B]),True,[B][COLOR=red][Uitslagen].[RennerID][/COLOR][/B]=[Forms]![B][COLOR=blue][fSelectie]![cboRenner][/COLOR][/B]))<>False)
In het voorbeeld is de blauwe tekst een verwijzing naar de keuzelijst in het formulier, en de rode tekst is het veld in je query.
 
Met een simpele aanpassing in je query kun je de waarde uit je formulier als criterium in je query krijgen, zonder vba. Een voorbeeldje ziet er dan zo uit: (laat alleen de filtering zien)
Code:
WHERE ((IIf(IsNull([Forms]![B][COLOR=blue][fSelectie]![cboRenner][/COLOR][/B]),True,[B][COLOR=red][Uitslagen].[RennerID][/COLOR][/B]=[Forms]![B][COLOR=blue][fSelectie]![cboRenner][/COLOR][/B]))<>False)
In het voorbeeld is de blauwe tekst een verwijzing naar de keuzelijst in het formulier, en de rode tekst is het veld in je query.

Thnx
Helaas krijg ik steeds opnieuw een syntaxisfout.

formuliernaam: F_adressen
invoervaknaam: Keuzelijst met invoervak18
querynaam: Q_adressen
veldnaam in query: Bestemmelingen
zo ziet mijn code er uit:

WHERE ((IIf(IsNull([Forms]![F_adressen]![Keuzelijst met invoervak18]),True,[Q_adressen].[Bestemmeling]=[Forms]![F_adressen]![Keuzelijst met invoervak18]))<>False)

de fout wordt aangegeven op de komma voor "true"

Grts, Filip.
 
Kan twee oorzaken hebben: als je de IIF string hebt gekopieerd naar het queryraster, dan moet je de komma vervangen door een puntkomma. Dan krijg je dus deze code die je in de query kunt plakken:
Code:
Expr1:IIf(IsNull([Forms]![F_adressen]![Keuzelijst met invoervak18]);True;[Q_adressen].[Bestemmeling]=[Forms]![F_adressen]![Keuzelijst met invoervak18])
En het criterium is dan: <>False
 
Kan twee oorzaken hebben: als je de IIF string hebt gekopieerd naar het queryraster, dan moet je de komma vervangen door een puntkomma. Dan krijg je dus deze code die je in de query kunt plakken:
Code:
Expr1:IIf(IsNull([Forms]![F_adressen]![Keuzelijst met invoervak18]);True;[Q_adressen].[Bestemmeling]=[Forms]![F_adressen]![Keuzelijst met invoervak18])
En het criterium is dan: <>False

Thnx OctaFish,

Ik krijg nu wel de vraag om een parameterwaarde in te voeren via het venster.(dat had ik voordien reeds).
Dat is niet de bedoeling, hier kunnen nog fouten ingetikt worden.
Ik load het bestand deze avond eens op van thuis uit. (of van hier maar dan enkel naar emailadressen)
Mss kan je daar eens naar kijken.
Het is een klein bestand, ik zoek deze oplossing om te implementeren in andere db's.

Grts, Flupken.
 
De oplossing is eigenlijk een oplossing die ik zelf ook liever niet gebruik, omdat hij alleen goed werkt als je de query aanstuurt vanuit een formulier. Wat, overigens, voor de doorsnee gebruiker ook genoeg zou moeten zijn. Als je de query zelfstandig start, krijg je dus inderdaad het dialoogvenstertje, waar je ofwel niks invoert, ofwel een bekende waarde. Als je niks invoert, krijg je alles, typ je een verkeerde waarde, krijg je niks.
Zelfstandig starten van de query is, in mijn ogen, voor de beheerder van de db nog wel een optie, maar moet je dus niet laten doen door een gewone gebruiker, die immers niet zal weten wat hij/zij precies moet invullen. Vandaar mijn opmerking dat het gebruiken van queries (geldt al helemaal voor tabellen...) door gewone gebruikers zoveel mogelijk vermeden moet worden.
Om het probleem te vermijden, zul je naar een VBA oplossing moeten kijken. Hierbij kun je een query gebruiken waar standaard geen criterium in zit, zodat er ook geen dialoogvenster komt bij het starten. De filtering wordt in dit geval aan de query gehangen als hij gestart wordt vanuit het formulier.
Het is, kortom, maar welke oplossing je wilt...
 
Laatst bewerkt:
Ik heb in je formulier een nieuwe keuzelijst gemaakt, die de query filtert, en zo het juiste aantal records voor één adres maakt. Als de keuzelijst leeg is (gemaakt), zie je alle etiketrecords voor alle adressen.
Op het formulier heb ik ook alvast een knop Etiketten gemaakt, waar je de code voor het etikettenrapport achter kunt hangen. Dit rapport zit er niet bij, dus de knop doet nog niks. Je hoeft voor dit rapport verder niet zoveel te doen; dat kan gewoon op de qeury worden gebaseerd. Zolang het formulier is geopend, heb je automatisch het juiste adres of alle adressen in de etiketten zitten, afhankelijk van de keuze in de keuzelijst.
 
Ik heb in je formulier een nieuwe keuzelijst gemaakt, die de query filtert, en zo het juiste aantal records voor één adres maakt. Als de keuzelijst leeg is (gemaakt), zie je alle etiketrecords voor alle adressen.
Op het formulier heb ik ook alvast een knop Etiketten gemaakt, waar je de code voor het etikettenrapport achter kunt hangen. Dit rapport zit er niet bij, dus de knop doet nog niks. Je hoeft voor dit rapport verder niet zoveel te doen; dat kan gewoon op de qeury worden gebaseerd. Zolang het formulier is geopend, heb je automatisch het juiste adres of alle adressen in de etiketten zitten, afhankelijk van de keuze in de keuzelijst.

OctaFish,

Bedankt! Dit is echt wat ik zocht.:P
Ik zal deze oplossing nog veel kunnen gebruiken in de toekomst.
Ik was te veel gefocust op de criteria ipv een nieuw veld te creëren in de query.

Grts, Filip.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan