[Access] Probleempje met tellen

Pagina: 1
Acties:

  • TMDevil
  • Registratie: Mei 2002
  • Laatst online: 01-07 15:59
Ik heb er lang over na gedacht en heb nu besloten om de hulplijnen open tezetten :+ . Kortom ik heb een probleem:

Bij access moet ik een raport maken waarbij er resultaten per week uit moeten komen. Nou moet ook alles van voor die week meegeteld worden om er achter de voorraad te komen.
Ik berkenen het weeknummer met "Format$([Orderlijst].[Datum],'yyyy,ww')" yyyy heb ik er bij omdat er natuurlijk in verschillende jaren de zelfde weeknummers zijn.

Nou komt het probleem:
Access telt net als veel andere programma´s als volgt:
1,10,11,12,13...2,20,21,22 enz... dus 2 komt na 19. Op deze manier krijg ik dus een totaal andre vooraad.
Dit is eigenlijk heel simpel op lossen door ipv 1, 01 te gebruiken Maar dat lukt me niet met access...

Ik hoop dat ik hier een beetje duidelijk in ben....

n54 power!


  • Arnaud
  • Registratie: Mei 2000
  • Laatst online: 02-08 18:07
Dat komt omdat je als datatype "Tekst" gebruikt. De volgorde gaat dan op alfabet en dus komt 2 inderdaad na 19. Als je als datatype "Nummer" gebruikt dan wordt de volgorde gewoon zoals jij hem wilt.

  • TMDevil
  • Registratie: Mei 2002
  • Laatst online: 01-07 15:59
Dat klinkt idd vrij logis. Echter...
Ik heb de volgende query in een KeuzeMenutje:
SELECT DISTINCT Format$([Orderlijst].[Datum],'yyyy,ww') AS [Datum per Week] FROM Orderlijst;
En word het resultaat vergeleken met een SELECT statement in een andere Query die er als volgt uit ziet (een stuki):
WHERE Format$([Orderlijst].[Datum], 'yyyy,ww') < forms![O:Orders]!lijst1

en dan werkt het dus niet (tenzij ik heeeele maal verkeert kijk)

n54 power!


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Ik zie nergens een ORDER BY statement ook staan? :?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Arnaud
  • Registratie: Mei 2000
  • Laatst online: 02-08 18:07
code:
1
2
3
4
5
6
7
If Problem_Solved Then
  msgbox "Never mind"
Else
  Give_Details Orders.datatypes, BasicInfo
  Give_Details Orderlijst.datatypes, BasicInfo
  Give_Details AllQueries, FullSQL
End If

:*)

[ Voor 9% gewijzigd door Arnaud op 19-05-2003 10:13 . Reden: code-tags toegevoegd ]


Verwijderd

Als jij de weeknummer niet als tekst wil hebben maar als een getal, converteer het dan naar een nummer met de functie cint. Dan komt de 2 gewoon weer na de 1 (inplaats van na de 19).

  • TMDevil
  • Registratie: Mei 2002
  • Laatst online: 01-07 15:59
gorgi_19 schreef op 19 mei 2003 @ 10:05:
Ik zie nergens een ORDER BY statement ook staan? :?
Dat hoeft ook niet. voor de gebruiker hoeft het niet allemaal op een rijtje te staan maar het systeem moet goed tellen. Dus van 1,2,3,4,5,6 enz...
De 4 Querys. Ik heb ze geslit omdat het 1, duidelijker word en 2, de query onafhankelijk van elkaar kunnen veranderen
fase1 = "SELECT Orderlijst.OrderId, Orderlijst.Weeknummer, Orderlijst.Datum, Orderlijst.TypeId, Orderlijst.VestigingId, Orderlijst.Geannuleerd, Modellenlijst.TypeId, Modellenlijst.Model, Orderlijst.Kenteken, Orderlijst.DatumDeel1, Orderlijst.Meldcode, Orderlijst.Occasion FROM Modellenlijst RIGHT JOIN Orderlijst ON Modellenlijst.TypeId = Orderlijst.TypeId WHERE ((Orderlijst.VestigingId=[forms]![O:Orders]![vestiging]) AND (Orderlijst.Geannuleerd=0) AND (Orderlijst.Occasion=[Forms]![O:Orders]![occasion]))"

fase2 = "SELECT * FROM (" & fase1 & ") WHERE (([Orderlijst].[Meldcode] Like '*') AND ([Orderlijst].[Kenteken] Like '*') AND ([Orderlijst].[DatumDeel1] Like '*'))"

fase3b = "SELECT * FROM (" & fase2 & ") WHERE Format$([Orderlijst].[Datum], 'yyyy,ww') < forms![O:Orders]!lijst1"

fase4b = "SELECT Model, Count(Orderlijst.TypeId) AS Aantal FROM (" & fase3b & ") GROUP BY Model;"

De Tabel Orderlijst:
Afbeeldingslocatie: http://www.tweakers.net/ext/f/5518/full.jpg

[ Voor 9% gewijzigd door TMDevil op 19-05-2003 10:26 ]

n54 power!


Verwijderd

Je krijgt door format$ een string(tekst) terug; zodoende sorteert hij hem dan op tekst!

Je moet hem dan converteren naar een integer of long

s6

EDIT:
CInt is converteren naar een Integer
CLng is converteren naar een Long

Verschil Long kan meer getallen aan, maar eist iets meer van je geheugen; Voor jou weeknummer moet je zekers Integer kiezen!!

[ Voor 74% gewijzigd door Verwijderd op 19-05-2003 12:37 ]


  • TMDevil
  • Registratie: Mei 2002
  • Laatst online: 01-07 15:59
Ik zie nu dat ik over MrDreamOn heen heb gelezen.. Tnx... ff uitproberen...

[ Voor 93% gewijzigd door TMDevil op 19-05-2003 11:59 . Reden: Haakje vergeten ]

n54 power!

Pagina: 1