query KeuzelijstJaar -1 ??

  • Onderwerp starter Onderwerp starter scw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
Merkwaardig genoeg, doet hij het wel in een andere query (de oorspronkelijke versie van deze) zoals gegeven door jou. Ik lijk tegen het volgende probleem op te lopen:

A known problem with Access crosstab queries is that references to form control values in WHERE clauses can and do fail, resulting in the error message you quoted - 'Access does not recognise xxxx as a valid field name or expression'. It often arises when adapting a SELECT query to become a CROSSTAB query - the Select WHERE clause works fine from the Query editor window, but change the query type to Crosstab and the same WHERE clause often fails.

This lack of recognition of form control references also occurs when running non-crosstab queries from VBA code, though in that case VBA returns a different error message: 'too few parameters - expected 1'.

It may well be that the field you mentioned which was missing - even though it appears to have nothing to do with your crosstab - is the sole cause of the failure of your report, in which case you don't need to do anything at all about your use of the form control reference. But, if you continue to experience the failure you mentioned in post #1 I'd replace the direct form control value, as I explain below.
gevonden op
HTML:
http://bytes.com/topic/access/answers/873154-access-does-not-recognize-valid-field-name

Helaas, geeft de site geen oplossing hiervoor... Desalniettemin zou het super zijn als die mag werken via de frmSelecteerJaar (is natuurlijk het mooiste)....
 
Kun je in dat geval (een deel van) de db posten, met de noodzakelijke tabellen, formulier en queries?
 
Gelukkig maar dat je ook nog percentages erbij wilde, want daardoor is het gelijk onmogelijk geworden om e.a.a. op de normale manier, dus via queries te doen. Deze oplossing is derhalve helemaal gemaakt met VBA. En dat had toch al mijn voorkeur. Dus iedereen blij!
 
bijna...

OK hartelijk dank! In principe is dit hieronder de code die ik wilde hebben, alleen ik vraag mij sterk af hoe je, om een nieuw veld te formuleren Percentage: Field 1/Field 2, veld 1 en veld 2 specificieert in die formule?? Want die verschillen toch steeds van naam?! Nu staat er keurig 2009 en 2010, maar volgend jaar staat er natuurlijk 2010 en 2011. :rolleyes:


Code:
TRANSFORM Nz(Count(Aanmeldingsoort_ID),0) AS Aantal
SELECT tblAanmeldingSoorten.Aanmeldingsoort
FROM tblAanmeldingSoorten INNER JOIN tblAanmeldingen ON tblAanmeldingSoorten.AanmeldingsoortID = tblAanmeldingen.Aanmeldingsoort_ID
WHERE (((Year([Datum]))=Year(Date()) Or (Year([Datum]))=Year(Date())-1))
GROUP BY tblAanmeldingSoorten.Aanmeldingsoort, [B][Field1][/B]/[B][Field2][/B]*100
PIVOT Year([Datum]);
 
Je geeft zelf antwoord op je eigen vraag:
Ik vraag mij sterk af hoe je, om een nieuw veld te formuleren Percentage: Field 1/Field 2, veld 1 en veld 2 specificieert in die formule??
En je eigen antwoord:
Want die verschillen toch steeds van naam!
Dus de formule die je zou willen maken, zal nooit kunnen werken. Op het moment dat de kruistabel wordt gegenereerd, bestaan de velden nog niet. Je krijgt dus altijd een foutmelding, zelfs als je de jaartallen met de hand zou invullen.
Code:
GROUP BY tblAanmeldingSoorten.Aanmeldingsoort, [2010]/[2009]*100
Daarom maak ik de query in twee stappen: eerst de query opbouwen met de jaren die je wilt zien, en vervolgens de Querydefinitie gebruiken om de Veldnamen in te lezen, zodat je de percentage berekening kunt maken. Ik zie eerlijk gezegd niet hoe het anders zou kunnen, maar dat stokje geef ik dan graag over aan iemand anders...
 
OK

Waar het mij om gaat is dat Access volautomatisch die twee jaartallen kan invullen; dus dat ik niet volgend jaar (en alle opvolgende jaren) dat in de gaten hoef te houden en te veranderen... Maar ik begrijp dat dat niet gaat, zelfs niet met die tweede query. Hmmm, helaas dan.

Bedankt toch, scw!
 
De 'truc' is om te werken met een verschil in jaren t.o.v. van het huidige jaar.
 
Hoi Harry,

Bedankt voor je inbreng. Kun je wat explicieter zijn? :)

Bedankt,
scw
 
Ik heb het formulier zodanig gemaakt, dat je nog wat te kiezen hebt. Is dat niet nodig, dan kun je de keuzelijst uiteraard vervangen door een vaste Datumselectie, gebaseerd op Jaar en Jaar-1. Overigens heb ik het formulier zo ingesteld, dat hij dat standaard al uit zichzelf kiest, dus als je een rapport wilt uitdraaien hoef je geeneens een keuze te maken. Zoals ze bij de belastingen al zeggen: leuker kunnen we het niet maken....
Ben overigens ook benieuwd wat Harry gaat maken, want het is mij nog nooit gelukt om een kruistabel te maken met ingebouwde percentages op interactieve datums of jaren! Ik blijf erbij dat het niet mogelijk is in één query, maar laat mij uiteraard graag overtuigen van het tegendeel ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan