Tabelkolom met Query kiezen middels formulier

Status
Niet open voor verdere reacties.

TOARies

Nieuwe gebruiker
Lid geworden
20 mrt 2008
Berichten
4
Ik wil met een formulier in een Query kiezen op welke kolom mijn criteria uitgevoerd gaan worden. Bijvoorbeeld. Ik heb een formulier met keuzelijst met inhoud a,b en c daarnaast een tabel met veldnamen a, b en c.
Ik heb geprobeerd te verwijzen in de query onder veldnaam: [tabelnaam].[[forms]![formuliernaam]![veldnaam]] maar dit (en de nodige variaties daarop) werkt niet.
Wie weet hier een oplossing voor?
 
Voorbeeld

Als ik het goed begrijp heb je een keuzelijst met mogelijk veldnamen en een keuzelijst met mogelijke waardes die in de velden kunnen staan. De where-clause zou er dan als volgt uit kunnen zien:
Code:
[veldnamen] & "='" & [waarden] & "'"

Ik heb voor het geamk even aangenomen dat het hier om tekstvelden gaat.
 
Where?

Heel erg bedankt voor je snelle reactie
Wat je beschrijft is inderdaad precies wat ik bedoel, het zijn alleen ja/nee velden.

Er is me echter iets anders niet duidelijk: In je antwoord heb je het over de where-clause. Ik ben echter een beginner (driekwart in diverse boeken) en daar staat niets in over Where.
Bij het verder zoeken kwam ik het wel tegen in de SQL pagina van de Query.
Kan ik dat daar gewoon in proberen? heb je toevallig een link waar (syntax) voorbeelden in staan voor access? en begrijp ik goed dat de volledige tekst er zo uitziet?

WHERE Tabelnaam.[forms]![formuliernaam]![veldnaam] & "='" & ([forms]![formuliernaam]![waarden] like "ja") & "'"

waarbij [veldnaam] de naam is in het formulier maar ook overeenkomt met de naam van de velden in de tabel
en [waarden] een begrijpelijke tekst is in het formulier, die ik omzet naar ja/nee/null en gebruik om te vergelijken met de inhoud van [veldnaam] in de tabel
 
Laatst bewerkt:
Wedervraag

Wat bedoel jij dan met het uitvoeren van criteria? Wat is je uiteindelijke bedoeling met de ingewonnen informatie? Meestal gebruik je dat om de resultaten te laten zien in een vervolgformulier, of in een rapport. In dat geval kun je aan de actie openform of openreport een zogenaamde where-clause meegeven die de resultaten wat inperkt.
 
Doel

De database is bedoeld voor het catagoriseren van alle materialen en het bepalen van wat staat waar. Daarnaast is deze bedoeld voor balans inventarisatie.

Voor het bepalen wat en hoe ik de data op papier wil hebben (controleren, etiketeren enz.) heb ik een formulier gemaakt met daarop
* De keuze op welke kolom in een tabel moet worden geselecteerd middels keuzelijst
* De keuze waarop geselecteerd moet worden in die kolom (ja/nee)
* op wat voor een manier een en ander afgedrukt moet worden. (hiervoor heb ik al een aantal rapporten die geopend worden door actiebuttons op dat formulier)

De invoer voor alle rapporten is dezelfde query
Ik krijg het alleen niet voor elkaar om te zorgen dat de query zoekt binnen de kolom die ik aangeef in het formulier......:confused:

Ik hoop dat dit voldoende uitleg is
 
Where voorwaarde

Bij het openen van een rapport is het mogelijk een zogenaamde where-voorwaarde mee te geven. Bij de docmd.openreport actie heet dit where-condition. Dit staat voor het stuk uit een sql-statement achter de where, vandaar de naam where-clause. Je geeft dit mee met een openreport, maar dan zonder de where ervoor.

Een ja/nee veld is een logisch veld, je kunt hiernaar verwijzen met waar/niet waar. Is de naam van je veld veldnaam, dan kun je als where-voorwaarde volstaan met
Code:
veldnaam
of juist
Code:
NOT veldnaam
.

Heb je dus een keuzelijst op je formulier waarmee je een ja/nee veldnaam kunt kiezen, dan zou je de volgende code kunnen gebruiken om het rapport te openen:
Code:
docmd.openreport "mijnrapport",acViewPreview,,keuzelijst
 
Opgelost

Door de hints die je me gegeven hebt heb ik mijn probleem op kunnen lossen, hiervoor hartelijk dank. Uiteindelijk is het een waarheidstabel geworden in de query (soms kan het zo simpel zijn).

Ik weet nog niet waar ik de code moet plaatsen die je voorstelde en hoe ik dat kan toevoegen bij het openen van de rapporten. Ik verwacht dat ik dergelijke code in de toekomst nodig heb.

Nogmaals dank.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan