Ricerca data tra intervallo di date

di il
9 risposte

Ricerca data tra intervallo di date

Buonasera a tutti, è il primo post che scrivo, intanto vi ringrazio per i migliaia di post e problemi risolti (ad altri), mi hanno aiutato tantissimo. Ho ricercato sul forum problemi analoghi ma sinceramente non ho trovato nulla, spero di non essermi sbagliato. Non sono espertissimo di access, sono uno smanettone, ho creato un programmino per la gestione archivio cartaceo (lavoro per una banca) che funziona molto bene, ma ho un piccolo problema: nella tabella "archivio", dove inserisco i vari dati di ogni documento che archivio, ci sono varie colonne tra cui "data da" e "data a", ciò che sto cercando di fare è una ricerca digitando una data specifica sul campo apposito di una maschera, che mi restituisca il record corrispondente al range tra "data da" e "data a", faccio un esempio pratico, ipotizziamo che ci sia una record con della documentazione che va dal 01/01/2022 (data da) al 31/01/2022 (data a), come posso riuscire a far restituire questo record digitando la data del 15/01/2022 (oppure un'altra compresa tra il 01/01/2022 e il 31/01/2022), nel campo ricerca?
Vi ringrazio in anticipo e mi scuso se la spiegazione vi sembra farraginosa
Un saluto

9 Risposte

  • Re: Ricerca data tra intervallo di date

    Ciao.
    Sinceramente non mi è chiaro quello che chiedi, sopratutto, nell ultima parte.
    Iniziamo intanto dalla ricerca tra due valori tramite una query. Poi affianiamo.
         SELECT campo
    FROM nometabella
    WHERE campo BETWEEN valore AND valore2;  
  • Re: Ricerca data tra intervallo di date

    Ciao, in effetti non così semplice da spiegare, ci riprovo:

    Questo è un esempio semplificato di un record della tabella "archivio":

    Scatola -> 1
    Tipo documento -> contratti
    Data da -> 01/01/2021
    Data a -> 31/01/2021

    In questo record ci sono i contratti di ogni giorno del mese di gennaio 2021

    Se io, ad esempio, necessito di sapere dov'è collocato il contratto del 15/01/2021, nel campo ricerca della maschera inserisco la data del 15/01/2021 e ovviamente non ottengo risultati, li ottengo solo se inserisco la data del 01/01/2021 o 31/01/2021, ovvero il dato preciso delle colonne "data da" e "data a", ed è lì il problema, devo poter ottenere come risultato questo record anche inserendo le date intermedie come appunto il 15/01/2021.

    Spero di essermi spiegato.

    Grazie mille per la risposta.

    Un saluto
  • Re: Ricerca data tra intervallo di date

    Ecco. Cosi è ancora peggio perché non si capisce se la ricerca è tra i valori di due date, se cerchi la singola data, se la data che cerchi non esiste, ma all interno della tabella esistono solo i valori di inizio e fine mese.

    Puoi postare il codice o query ed uno screen shot della maschera con cui fai la ricerca?
    Uno screen shoot della maschera di inserimento, e delle relazioni tra le tabelle?
    Da quello che dici, sembra quasi che siano archiviate solo quelle due date.
  • Re: Ricerca data tra intervallo di date

    Nella Tua Tabella hai 2 Date...?
    DataInizio e DadaFine...? Capisco bene...?
    Tu devi capire se ad una certa data ci sono Record che includono la data stessa...?
    
    SELECT * FROM T1
    WHERE [TuaDataEsterna] BETWEEN [DataInizio] AND [DataFine]
    Cosa non ho capito...?

    P.S. Fai attenzione all'accezione Anglosassone delle Date...!
  • Re: Ricerca data tra intervallo di date

    @Alex ha scritto:


    Nella Tua Tabella hai 2 Date...?
    DataInizio e DadaFine...? Capisco bene...?
    Tu devi capire se ad una certa data ci sono Record che includono la data stessa...?

    Secondo me vuole solo fare una ricerca su un intervallo di date, ma sta pasticciando.
  • Re: Ricerca data tra intervallo di date

    Eventualmente questo può aiuatare, è complesso ma utile:
  • Re: Ricerca data tra intervallo di date

    @Alex ha scritto:


    Nella Tua Tabella hai 2 Date...?
    DataInizio e DadaFine...? Capisco bene...?
    Buongiorno, hai capito perfettamente, nella tabella ho due date, data inizio e data fine, questi due campi sono l'intervallo di date in cui dovrei effettuare la ricerca, come dicevo nel precedente post, vorrei poter scrivere una data nel campo "ricerca data" della maschera e mi restituisse tutti i record che comprendono la data che ho scritto ("ricerca data") in quell'intervallo di date.

    fratac ha scritto:


    Secondo me vuole solo fare una ricerca su un intervallo di date, ma sta pasticciando.
    Chiedo scusa se posso sembrare pasticcione, sto cercando di spiegare una cosa che ho ben chiara in testa ma non semplice da esplicare

    @Alex ha scritto:


    Eventualmente questo può aiuatare, è complesso ma utile:
    ... g?e=SphUjc
    gli ho dato una rapida occhiata e mi sembra davvero molto complesso e sarebbe molto articolato inserirlo nel mio programmino, cercavo una soluzione più semplice (se esiste ovviamente), anche perché questa è una funzione secondaria e non fondamentale, grazie comunque per l'aiuto
  • Re: Ricerca data tra intervallo di date

    virgilio79 ha scritto:


    ...
    Buongiorno, hai capito perfettamente, nella tabella ho due date, data inizio e data fine, questi due campi sono l'intervallo di date in cui dovrei effettuare la ricerca, come dicevo nel precedente post, vorrei poter scrivere una data nel campo "ricerca data" della maschera e mi restituisse tutti i record che comprendono la data che ho scritto ("ricerca data") in quell'intervallo di date.
    Bene allora è molto semplice...!
    Ora devo capire meglio che tipo di utilità devi risolvere... o meglio, vuoi visualizzare i dati che rientrano nel Range o vuoi solo contarli o cos'altro...?
    La soluzione migliore non è andare a modificare la Query in quanto poi ti vincola nel caso di non inserimento della data, ma usare il Filtro di Maschera.
    Metti una TextBox nella Maschera che chiami [txtDataRicerca] ed un button per applicare il criterio:
    
    Private Sub NomeButton_Click()
        Dim sWHR  As String
        If Len(Me!txtDataRicerca)>0 Then
            sWHR=clng(Me!txtDataRicerca) & " Between [CampoDataInizio] And [CampoDataFine]"
            Me.Filter=sWHR
            Me.FilterOn=True
        Else
            Me.Filter=vbNullstring
            Me.FilterOn=False
        End If    
    End Sub

    virgilio79 ha scritto:


    gli ho dato una rapida occhiata e mi sembra davvero molto complesso e sarebbe molto articolato inserirlo nel mio programmino, cercavo una soluzione più semplice (se esiste ovviamente), anche perché questa è una funzione secondaria e non fondamentale, grazie comunque per l'aiuto
    Si è un poco tecnico sicuramente, infatti è solo a titolo di studio per chi deve ancora completare gli aspetti tecnici.
  • Re: Ricerca data tra intervallo di date

    @Alex ha scritto:


    Bene allora è molto semplice...!
    Ora devo capire meglio che tipo di utilità devi risolvere... o meglio, vuoi visualizzare i dati che rientrano nel Range o vuoi solo contarli o cos'altro...?
    La soluzione migliore non è andare a modificare la Query in quanto poi ti vincola nel caso di non inserimento della data, ma usare il Filtro di Maschera.
    Metti una TextBox nella Maschera che chiami [txtDataRicerca] ed un button per applicare il criterio:
    appena riesco faccio una prova e ti faccio sapere.
    intanto grazie infinite
Devi accedere o registrarti per scrivere nel forum
9 risposte