Casella combinata con date ordine cronologico

di il
9 risposte

Casella combinata con date ordine cronologico

Buonasera e grazie in anticipo a chi saprà aiutarmi. Premetto che sono neofita ed autodidatta, quindi scusate se non sarò abbastanza tecnico. Ho un problema che non riesco a risolvere. Ho costruito un piccolo database molto semplice di scadenziario passivo. in una maschera ho inserito 4 caselle combinate di ricerca: Anno, Scadenza (con valore Tutto), Fornitore (con valore tutto), e banca (con valore tutto).
Quasi tutto funziona correttamente, ho un unico problema, nella casella combinata "Scadenza" l'elenco ( a discesa) delle scadenze è il seguente 10/01/2020 10/09/2020 31/01/2020 28/02/2020 30/04/2020 30/06/2020 eccetera .... Io naturalmente vorrei che fossero 10/01/2020 31/01/2020 28/02/2020 31/03/2020 eccetera. In pratica è come se non mi riconoscesse l'ordine cronologico. Premetto che la query e la tabella da cui prendo i dati sono campi Data. Ho provato ad inserire l'ordine "crescente" dapertutto, nella query da cui prendo i dati (AnnoScadenza)... "ordina per" , "order by".
Dimenticavo di dire che ho scritto l'istruzione SLQ seguente: SELECT Scadenza FROM AnnoScadenza WHERE anno=[Maschere]![DatiScadenziario_new]![SceltaAnno] UNION SELECT '(Tutto)' AS Scadenza FROM tblunione Order by Scadenza;

Dove sbaglio?

Grazie ancora a chi saprà aiutarmi.

Michele

9 Risposte

  • Re: Casella combinata con date ordine cronologico

    Non si comprende quale sia la motivazione di effettuare una UNION (fra due tabelle) nella query da te indicata.
    Inoltre controlla che la casella combinata, su cui determini le date, abbia la "origine riga" con la query ordinata sulla scadenza.
  • Re: Casella combinata con date ordine cronologico

    Buongiorno e grazie per la risposta. Come dicevo non sono esperto, ho imparato da vari tutorial, quindi penso di aver commesso sicuramente molti errori.
    - La Union """penso"""" serva a far funzionare la scelta "tutto", infatti senza questo codice non va.
    - La casella combinata (SceltaScadenza) ha come origine riga la SQL che ho postato, non so come fare a inserire anche una query. Difatti però i dati che prende sono esatti, le scadenze sono proprio quelle, solo che non sono elencate in ordine cronologico, ma del tipo 1, 10, 1000.... 2, 20,. E' come se riconoscesse solo il giorno e non tutta la data. Preciso poi che le scadenze visualizzate nella maschera sono in ordine perfetto, è solo l'elenco del menu a discesa della casella combinata che non lo è. Cosi l'operatore si deve andare a cercare la scadenza tra quelle dell'elenco ed è difficile trovare quella che si desidera se non sono visualizzate cronologicamente.

    Spero di essermi spiegato e mi scuso per il linguaggio da semplice operatore.

    Grz ancora a chi mi saprà aiutare.
    Michele
  • Re: Casella combinata con date ordine cronologico

    Non hai dato seguito al suggerimento che ti avevo fornito nel post precedente (in merito quesito che ti avevo indicato alla query presente alla "origine riga" della casella combinata).
    Considera che se l'ordine è quello da te indicato: "1, 10, 1000.... 2, 20, ..." significa che il tipo dato su cui stai ordinando è di tipo testuale e non certamente numerico o data.
  • Re: Casella combinata con date ordine cronologico

    Grazie Willy.
    Quando clicco su "origine riga" della casella combinata di selezione scadenza, mi appare direttamente l'istruzione SQL non la query. Ho anche provato ad inserire nella finestra delle proprietà della query "ordina per" Scadenze, ma non ho risolto. Quindi ricapitolando: lo so che è un problema che la casella combinata non riconosce il campo come data ma come testo, ma sono io che non so dove e come inserire questo ordinamento. Ripeto la query è ordinata già in base alle scadenze, la tabella da cui deriva la query è ordinata in base alle scadenze quindi il resto funziona correttamente.
    E' solo l'elenco della casella combinata che non lo è. Per me è un mistero!!!.

    Se non risolvo me ne farò una ragione...
    Grazie a tutti.
    Michele
  • Re: Casella combinata con date ordine cronologico

    Quali sono i nomi della Tabella e del Campo dove sono memorizzate le date di scadenza?
    Se hai creato la finestra delle Relazioni forse se alleghi l'immagine ti si potrebbe dare qualche consiglio in più in quanto da quanto hai scritto ci dovrebbero essere delle tabelle superflue o mal strutturate.
  • Re: Casella combinata con date ordine cronologico

    Come faccio ad allegare files?
  • Re: Casella combinata con date ordine cronologico

    Ecco trovato modo di allegare i files.
    Allegati:
    casella combinata
    casella combinata

    tabella con campo "Scadenza"
    tabella con campo "Scadenza"

    relazioni tra tabelle
    relazioni tra tabelle

    queri su cui si basa la casella combinata
    queri su cui si basa la casella combinata
  • Re: Casella combinata con date ordine cronologico

    Prova così:
    SELECT Scadenza, CLng(Scadenza) AS Ordine FROM AnnoScadenza  UNION SELECT '(Tutto)' AS Scadenza, 0 AS Ordine FROM AnnoScadenza ORDER BY Ordine;
    Nella tabella DatiScadenziario non sono necessari i campi Anno e Mese in quanto sono ricavabili direttamente dal campo Scadenza tramite le funzioni Year(Scadenza) e Month(Scadenza) applicati ad esso.
  • Re: Casella combinata con date ordine cronologico

    Risolto tutto aggiungendo WHERE anno=[Maschere]![DatiScadenziario_new]![SceltaAnno]. Quindi ora fonziona tutto meravigliosamente....

    Ancora Grazieeeeee
    Michele
Devi accedere o registrarti per scrivere nel forum
9 risposte