syntax error

  • Onderwerp starter Onderwerp starter scw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
En zowel Shippedvalue als ShippedValueTotal geeft gegarandeerd een getal?
 
Hebbes!

AH nu zie ik weer de schoen knelt: het veld [ShippedValueTotal] is weer een telling IN de query zelf. En dan kan die hem niet oppakken voor een nieuwe berekening in dezelfde query natuurlijk (zoals dat ook al een 'probleem' was bij een vorige vraag van mij).... OK dank, want door jou heb ik het kunnen achterhalen!! Ik ga het nu even proberen goed te laten werken... :thumb::thumb:
 
Het werkt helaas nog steeds niet naar behoren :(, ik heb:

Code:
SELECT tblSalesPerCustomer.[Customer Number], tblSalesPerCustomer.Year, tblSalesPerCustomer.ShippedValue, DSum("[ShippedValue]","tblSalesPerCustomer","[ShippedValue]>=" & [SumOfShippedValueEuro])/DSum("[ShippedValue]","tblSalesPerCustomer") AS CumPct
FROM tblSalesPerCustomer, qryParetoAnalysisSub;

En een Subquery gemaakt waarin SumOfShippedValuesEuro wordt berekend:

Code:
SELECT tblAllCountries.Year, Sum(tblAllCountries.ShippedValueEuro) AS SumOfShippedValueEuro
FROM tblAllCountries
GROUP BY tblAllCountries.Year;

Nu blijft Access nog de foutmelding geven:

Syntax error (comma) in query expression '[ShippedValue]>=(hier staat de uitkomst van SumOfShippedValueEuro)

De uitkomst van SumOfShippedValueEuro is overigens een groot getal met vele decimalen achter de komma. Nu heb ik geprobeerd om de eigenschappen hiervan op 2 decimalen te zetten, maar dat bood geen soelaas. :confused:


Het zou juist vrij makkelijk moeten zijn met die Microsoft How-To artikeltjes, maar ondertussen blijft het nog altijd lastig heb ik het idee :confused: Wat zou ik nog kunnen proberen?
 
Misschien moet je de DSum waarden nog een conversieslag geven; Dfuncties leveren (dacht ik) tekstwaarden terug, geen getallen. Dan kun je misschien dit nog proberen:
Code:
SELECT tblSalesPerCustomer.[Customer Number], tblSalesPerCustomer.Year, tblSalesPerCustomer.ShippedValue, DSum("[ShippedValue]","tblSalesPerCustomer","[ShippedValue]>=" & [SumOfShippedValueEuro])/CDbl(DSum("[ShippedValue]","tblSalesPerCustomer")) AS CumPct
FROM tblSalesPerCustomer, qryParetoAnalysisSub;
 
VBA gebruikt de punt als decimaalteken.
Zou zo maar kunnen dat daar nog een probleem zit.
Gebruik de Replace functie om in VBA de komma te vervangen door een punt.

Tardis
 
bijlage

Goedendag!

Helaas nog niet gelukt met hulp van twee reacties, toch bedankt. Nu plaats ik maar het voorbeeldbestand, da's misschien wel makkelijker uitzoeken ;) Hopelijk lukt het uiteindelijk toch... :)
 

Bijlagen

Nog een vervolgvraag:

Met zo een grote dB als deze, 600.000 orderregels; m'n dB gaat tergend langzaam.. kan soms uren duren om een rapport eruit te krijgen of een query te draaien. Wat zouden mogelijkheden zijn om deze hele brok voor Access zeg maar 'in stukjes te delen'? Ik zit te denken aan een query die je draait met jaartal voordat de gegevens naar de 'Front-End' gaan van de dB. Maar dat is maar even iets wat bij me opkomt. Graag hoor ik jullie suggesties!! :thumb:
 
Los van het feit dat ik denk dat deze vraag niets met je originele vraag te maken heeft en je dus een andere vraag zou moeten starten, het volgende:

Vervang alle domain functies door snellere varianten: zoek op TLOOKUP
Gebruik zo min mogelijk IIF jes in je queries.
Maak je pad naar de backend zo kort mogelijk door gebruik te maken van het dos subst commando.

Er zijn nog talloze manieren om je code/queries sneller te krijgen maar deze zijn het eenvoudigst met de meeste winst.

Share and Enjoy!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan