Opgegeven selectieparameter in Where, gebruiken in Report

Status
Niet open voor verdere reacties.

EduardMD

Nieuwe gebruiker
Lid geworden
19 nov 2018
Berichten
4
ik ben bezig met MS Access, heel roestige ervaring.
Mijn vraag is:
Ik geef in het ontwerpsscherm van een query <Like “*-*-“ & [Jaar:]> op, dat in het SQL weergavescherm bij Where terecht komt.
Nu wil ik hetgeen opgegeven wordt in een report gebruiken. En het lukt me niet, hoe ik ook zoek (waarschijnlijk verkeerd), hoe ik ook het probeer.
Met vriendelijke groet,
Eduard
 
Wat denk je hier voor output mee te genereren?
 
Niets alszodanig.
Het is een bestaand report, vijf jaar geleden door iemand anders gemaakt waar voor het jaarverslag de datum hard in gecodeerd was. Ik wil het aangegeven jaar bij selectie ook op het rapport zichtbaar hebben.
 
Je zegt "Niets als zodanig", maar je wilt dus wél wat filteren :). En je wilt blijkbaar op een datumveld filteren, gezien de aanpak die je hebt geprobeerd. En die dus nooit kan werken. Dat de oude filtering wél werkte, is logisch, omdat die op een harde datum filterde. Jij doet dat niet.
Allereerst: een datum is een getal, en getallen kun je nooit met LIKE filteren. Die parameter werkt alleen met tekst. Dus dat is probleem 1. Verder zeg je dat je de waarden van één jaar wilt zien. Dan moet je niet op datums filteren, maar op een Jaar. En dat doe je zo:
PHP:
WHERE Year([Datumveld])=[Typ een jaar:])
 
Het gekke is dat het wel werkte, maar dat was mijn probleem niet.
Het probleem is dat ik datgene wat opgegeven/ingetypt wordt, OOK zichtpaar wil laten zijn in het report.
Zodat de verschillende rapporten per jaar kan onderscheiden.
Met vriendelijke groet,
Eduard
 
Als het wél werkte, is je datum geen datumveld maar een tekstveld. Dit zou niet de eerste db zijn waarin dat gebeurt. Dat kan ik van afstand uiteraard niet ruiken :). Ik heb jouw wijze even geprobeerd op een 'echt' datumveld, en daar komt echt niks uit. Maar goed, bij jou werkt het, dus dan moet je even geen slapende honden wakker maken denk ik.
Overigens kom ik qua antwoord dan tóch weer bij mijn eerdere oplossing uit, want die bevat dus het antwoord op jouw vraag. Om dat even uit te leggen: als je een veld in een rapport terug wilt zien, moet dat wel bestaan. In jouw geval wil je dus het jaartal terugzien, want dat vraag je uit. Dus heb je een veld nodig dat dit jaartal berekent. Dat doe je dus met Jaartal:Year([Datumveld]). En het filteren op het juiste jaartal doe je dus met het criterium: [Typ een jaar:]. Zelf definieer ik de parameter nog als getal, om te voorkomen dat mensen tekst gaan invoeren: PARAMETERS [Typ een jaar:] Short. Maar dat hoeft dus niet.
Als je het veld hebt gemaakt, en op hebt gefilterd, kun je het veld ook in je rapport zetten.
 
Je hoeft dat op dit moment nog niet te doen; als je datum inderdaad een tekstveld is, kun je de functie Year nog niet gebruiken, maar je kunt dat wellicht wél als je de waarde in een veld omzet naar een datum. Je kunt dus zoiets nog proberen: Jaartal:Year(CDate([Datumveld])).
Als dat niet werkt, heb je een probleem en moet je inderdaad kijken of je het tekstveld kan omzetten. Overigens denk ik dat je dan ook een probleem hebt, want dan zouden de datums wel eens niet herkend kunnen worden bij de omzetting, en dan is je veld leeg. Dus altijd omzetten middels een bijwerkquery die de datum eerst in een nieuw veld zet. Dan zie je gauw genoeg welke datums wél goed gaan en welke niet. Die laatste kan je dan wellicht met de hand doen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan