sorteren op dag

Status
Niet open voor verdere reacties.

mark68

Gebruiker
Lid geworden
30 sep 2009
Berichten
50
Ik heb in mijn ledenprogramma een rapport gemaakt voor de verjaardagen met de volgende expressie :
SELECT DISTINCTROW leden.* FROM leden WHERE Noglid=true AND (((Month([Gebdat]))=Month));

Wat kan ik daaraan veranderen zodat de leden in het rapport gesorteerd worden op de dag van de maand? Dus eerst 1 januari en dan 2 januari?
 
Probeer de volgende coderegel eens:

SELECT DISTINCTROW leden.* FROM leden WHERE Noglid=true AND (((Month([Gebdat]))=Month)) ORDER BY Gebdat;


Rebmog
 
helaas

Dat had ik al geprobeerd maar dan komt eerst b.v. 30 januari 1948 en dan 1 januari 1980.

Dus gesorteerd op jaar. De bedoeling is om per maand te weten wie er het eerste jarig is onafhankelijk van de leeftijd.

Dus eerst 1 januari 1980 en dan pas 30 januari 1948.

Ik wil dus sorteren op dag en niet op jaar
 
Je hebt gelijk. Probeer eens:

SELECT DISTINCTROW leden.* FROM leden WHERE Noglid=true AND (((Month([Gebdat]))=Month)) ORDER BY Day([Gebdat]);

Rebmog
 
De laatste oplossing van Reb gaat ook niet werken, want dan sorteer je 1-2-1987 bijvoorbeeld voor 2-1-1945.

De oplossing is als volgt:

SELECT DISTINCTROW leden.* FROM leden WHERE Noglid=true AND (((Month([Gebdat]))=Month)) ORDER BY & DateSerial(year(date()); month([gebdat]); day([gebdat]))
 
Ik denk dat mijn oplossing wél kan werken, omdat d.m.v. het WHERE-statement de query alleen maar records weergeeft van 1 maand.

Rebmog
 
Zit in dit geval inderdaad wel wat in :) Overigens is mijn oplossing wel wat universeler als je over een periode van een maand heen kijkt....
 
Overigens is mijn oplossing wel wat universeler als je over een periode van een maand heen kijkt....

Jouw oplossing kijkt echter niet over de maand heen doet ergo niet universeler ;)

Tardis
 
helaas

Dit lukt ook niet. dan krijg ik de volgende melding

syntaxisfout (operator ontbreekt) in query expressie & DATEserial... enz
 
D'r zat een klein typfoutje in:

SELECT DISTINCTROW leden.* FROM leden WHERE Noglid=true AND (((Month([Gebdat]))=Month)) ORDER BY DateSerial(year(date()); month([gebdat]); day([gebdat]))

@Tardis:
Was je denkraam maar zo groot als je naam suggereert..... in dit voorbeeld zit een restrictie op de maand, dus dan maakt Dateserial niet zoveel verschil. Haal je die weg, dan dus wel. Buiten het doosje denken heet dat, geloof ik :D
 
Laatst bewerkt:
wat gaat er niet goed??

Misschien doe ik iets niet goed, maar ik krijg nog steeds de foutmelding, ook als ik DateSerial weglaat.

Ik denk dat ik iets fout doe, maar ik weet alleen niet wat.

Ik heb nog niet zo veel verstand van de expressies, vandaar dat ik er zelf niet uitkom. Door dit forum kan ik er wel heel veel over leren.

Het meeste leer je door het te doen. Ik probeer ook altijd de expressies die jullie doorgeven te begrijpen en er van te leren.

Maar helaas snap ik nog waarom dit niet lukt. Is het inderdaad een foutje van mij?
 
Kun je de volledige query tekst posten?
 
Ik vermoed dat de fout in het WHERE-statement zit:

Month([Gebdat]))=Month moet denk ik worden Month([Gebdat]))=Month(Now())

Rebmog
 
SELECT DISTINCTROW leden.* FROM leden WHERE Noglid=true AND (((Month([Gebdat]))=Month));


Ik heb het niet staan in een query, maar in een rapport (misschien zit het probleem daarin?).

De reden waarom ik niet heb gekozen voor Month(now()) is dat als ik dat rapport op wil roepen ik aan kan geven van welke maand ik de gegevens wil hebben. Bij oproepen van het rapport vraagt het programma naar de maand. Als ik dan 4 invoer krijg ik alleen verjaardagen van april.

Dat werkt perfect, maar nu alleen nog maar sorteren op de dag van de maand.
 
Waarom regel je de sortering niet op het rapport zelf? Je kunt in een rapport groeperingsniveaus aanbrengen (zal je vast wel gedaan hebben) maar ook daarna bepalen op welk veld je wilt sorteren zonder een groep te gebruiken.
Zie plaatje.
 

Bijlagen

  • Sorteren Rapport.jpg
    Sorteren Rapport.jpg
    27,5 KB · Weergaven: 55
jammer

Dat heb ik inderdaad al gedaan, maar nu heb ik er nog even extra naar gekeken.
Als ik de sorteervolgorde verander naar : van nieuw naar oud werkt het wel dan krijg ik eerst de laatste jaren en dan pas de vroegere jaren.

Maar als ik er bij zet dat er op dag gesorteerd moet worden, verandert er helemaal niet.

Nog steeds eerts 14 oktober 1953 en dan pas 2 oktober 1975.

Nog meer tips?? Ik kan zelf niets bedenken.
 
Heb je de methode RebMog hier ook al op losgelaten? Want door je filtering op één bepaalde maand, en extraheren van de dagnummers in de onderliggende query moet je toch oplopend kunnen sorteren op Dag?
 
Dat zou je verwachten. Maar zelfs als je opgeeft dat het rapport gesorteerd moet worden op de dag van de maand die je opgeeft, verrekt ie 't om een mooi overzicht te geven.

Keurig oplopend op de complete datum, maar nog steeds niet op daag van de maand.

Alles wat hier als mogelijke oplossing wordt aangegeven heb ik geprobeerd, maar het werkt gewoon niet. Ik weet niet wat er fout gaat.

Wie oh wie komt met de gouden tip??????????????:D
 
Kun je er een voorbeeldje van maken? Want het moet absoluut mogelijk zijn om het rapport goed te sorteren. Zowiezo overruled het rapport alles wat je in de query doet, dus daar zou ik niet eens naar kijken.... Het probleem moet je oplossen in het rapport, desnoods via VBA...
 
Hierbij even de uitgeklede versie van het bestand. De tabel van de leden en het rapport waar het om gaat met de verjaardagen staan er in.

Hopenlijk heb je er iets aan en kun je er iets mee.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan