query aanpassing na invullen formulier

Status
Niet open voor verdere reacties.

CEEFOUR

Nieuwe gebruiker
Lid geworden
29 aug 2014
Berichten
4
Ave,

Ik heb een database gemaakt met persoonsgegevens en bedrijfsgegevens. Met een formulier ben ik in staat de query te voorzien van informatie, waardoor er een prachtig resultaat ontstaat (newby, dus weinig referentiekader :shocked:)

Het formulier bestaat uit de volgende textvelden: naam, bedrijf, week.
Bij naam en bedrijf doet hij precies wat ik wil, met de week heb ik een probleem.

Het invullen van, een gedeelte, van de naam krijg ik goed resultaat. In de querydesign heb ik een verwijzing naar de kolom in mijn tabel en als criteria heb ik: Like "*" & [forms]![frm...]![txt...] & "*" Dit werkt prima.

Om te zien of mijn 'personen' beschikbaar zijn heb ik per week (37, 38, 39, enz) een true/false button in de kolom gezet.

Wat ik graag wil is dat wanneer ik in het fomulier "37" typ, de query alleen de personen laat zien die een vinkje in deze kolom hebben staan.

Wil ik iets onmogelijks?
 
Ik bespeur inderdaad een 'newbie' insteek ;)
Met een formulier ben ik in staat de query te voorzien van informatie, waardoor er een prachtig resultaat ontstaat
Een formulier is gebaseerd op een query/tabel, niet andersom :). En een query is gebaseerd op een tabel (of meerdere tabellen), niet op een formulier. Wél kun je, en dat doe je dus, een query filteren met gegevens vanuit een formulier.
Verder ben ik een beetje verbaasd over die weeknummers. Dat lijkt mij een erg omslachtige constructie, die meestal ook helemaal niet nodig is, want een weeknummer kun je altijd berekenen uit een datum. Daar zou ik zo snel mogelijk vanaf stappen dus.
 
Ik vond het al zo stoer van mijzelf. Natuurlijk ben ik een advanced user, maar meer op het gebied van koffieconsumptie...

Inderdaad gebruik ik een pop-up formulier om de gegevens van de query te filteren.

De reden van het gebruik van buttons is omdat ik bij een uitdraai van alle personen direct zichtbaar heb welke weken (die met het vinkje) zij beschikbaar zijn. Een datumfunctie is voor mij niet direct van belang.

de tabel ziet er zo uit (in het kort):
|naam (short text) | bedrijf (short text) | week37 (yes/no) | week38 (yes/no) | week39 (yes/no)|

Maar kan ook zo gezien worden:
|naam (short text) | bedrijf (short text) | fiets (yes/no) | auto (yes/no) | motor (yes/no)|

Als ik dan in mijn pop-up fomulier invul "fiets", dan zou de query iedereen moeten laten zien die een vinkje in de kolom fiets heeft staan. Hierbij moet het niet uitmaken of deze personen ook een auto of een motor hebben. En vul ik in dat zelfde tekstblok "auto" in, laat hij dat zien.

Zelf zat ik te denken of deze verwijzing mogelijk is bij de kolomkop van de query, maar ik heb geen idee welke buitenaardse krachten hierbij komen kijken?

Voor mijn gevoel kan ik geen foreign key met een one-to-many relation toepassen, omdat een persoon buiten een fiets, ook een auto kan bezitten.

Waarschijnlijk liggen meerdere ervaren forumbezoeker in een deuk door mijn kronkel, maar goed, dat moet dan maar even. :)
 
De reden van het gebruik van buttons is omdat ik bij een uitdraai van alle personen direct zichtbaar heb welke weken (die met het vinkje) zij beschikbaar zijn. Een datumfunctie is voor mij niet direct van belang.
Normaal gesproken leg je vast wanneer iemand niet beschikbaar is (ingeroosterd op een klus, vrije dagen, vakantie). Als je die informatie hebt, weet je ook wanneer een persoon beschikbaar is (de overige periodes). Die informatie haal je dynamisch op, want zodra een nieuwe 'bezet' periode wordt ingevuld, is de beschikbaarheid omgekeerd afgenomen.
 
Dan zou de oplossing moeten zijn dat ik in het tekstvak een periode aangeef, zodat deze vervolgens laat zien wie ik in deze periode ter beschikking heb. Okay.

Terug naar de mensen met een fiets, auto of motor: Ik moet dus het filter van de query steeds wijzigen om alle mensen te laten zien die een vinkje hebben staan bij fiets, en/of auto, en/of motor. Helaas, want daar had ik gehoopt winst te kunnen boeken.

In het vak 'Field' is het dan ook niet mogelijk een if/then (of iets dergelijks) te plaatsen. Toch maar eens Bill Gates bellen vóór zijn volgende update. :) Zou voor mij soelaas bieden.

Tot die tijd zal ik weer wat cursussen volgen op youtube.
 
Ik denk niet dat Bill hier veel aan gaat doen; hij zal wel zeggen: bel Octafish maar :). Die weet dan niet precies wat je bedoelt, maar kan je wel naar de (in mijn ogen perfecte, want door mij geschreven) cursus Access in de Handleidingen sectie leiden.
Ik vermoed dat je voor Fiets/Motor/Auto aparte selectieveldjes hebt gemaakt, al zou ik ook daar één veld voor gebruiken, en dan desnoods een veld met meervoudige waarden. Dat is hier perfect geschikt voor. En dat maakt het filteren ook een stuk makkelijker. Maar laten we even uitgaan van je 3 Boolean veldjes. Die filter je blijkbaar met 3 knoppen. Als je op Fiets klikt, dan moet het filter worden:
"WHERE Fiets = TRUE". Bij Auto: "WHERE Auto = TRUE". Lastiger wordt het als je 2 waarden wilt aanklikken: wil je dan de mensen zien die zowel een auto als een fiets hebben? Of wil je de mensen zien die ofwel een fiets, ofwel een auto hebben? Dat zijn 2 verschillende filters:
Code:
"WHERE Fiets = TRUE" AND Auto = TRUE".
en
Code:
"WHERE Fiets = TRUE" OR Auto = TRUE".
In het queryvenster staan bij de eerste variant de criteria in dezelfde regel (beide velden bevatten dan WAAR), in het 2e geval staat het criterium in een eigen regel, dus 2 regels. Je kunt dit dus niet in één optie oplossen, en al helemaal niet als je wilt kunnen schakelen tussen de EN en OF variant.
 
Om te zien of mijn 'personen' beschikbaar zijn heb ik per week (37, 38, 39, enz) een true/false button in de kolom gezet.

Je hebt een zogenaamde platte tabel gemaakt.
Dat is in database land een grote NO NO.
Sla per persoon de wekelijkse beschikbaarheid in aparte records op.

Tardis
 
Dat heeft TS al om 15:35 toegezegd :)
 
Dank voor de adviezen!

Ik zal mijn db aanpassen zodat ik de gegevens op een juiste manier kan ordenen. Hiermee voorkom ik direct de platte tabel.

Op dit moment zie ik een zee aan mogelijkheden en wordt steeds enthousiaster om Access te gebruiken!

Wanneer ik weer tegen een muur aanloop weet ik dat ik op het forum terecht kan.

Deze sluiten we af.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan