Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Query con record in intervallo temporale

  1. #1
    lolliman non è in linea Novello
    Ciao a tutti ragazzi,
    le mie avventure con access, mi stanno portando giorno dopo giorno a imparare di piu' di questo bel programmino
    Oggi vi pongo l'ennesima domanda, ho creato una tabella con le date di assenza del personale con data inizio, data fine, note e motivazioni, ora vorrei creare 2 query, una con all'interno tutti i record mancanti nella settimana corrente, e nell'altra tutti i record mancanti nel giorno di oggi.
    Ho gia creato due query ma sono riuscito solo a dare come opzioni dei controlli su giorno e settimana singoli, non inerenti all'arco temporale.
    Chiedo vostro aiuto

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Arco temporale...?

    SELECT * FROM T1
    WHERE TuoCampoData<=DataInizio AND TuoCampoData>=TuaDataFine
    
    Ovviamente i limiti temporali saranno 2 Date che prelevi dalla Maschera...
    La query sopra restituirà Eventi in cui la data è compresa tra le 2...

    Ora se il tuo Evento è di fatto già un Periodo, e lo devi confrontare con un Periodo di Ricerca... la cosa un poco cambia...!

    Per verificare se il Periodo EVENTO rientra nel periodo di RICERCA, basta escludere gli estremi...

    Quindi se:]
    DataInizioEvento>DataFineRicerca OR
    DataFineEvento<DataInizioRicerca
    
    sicuramente l'evento non avviene nel periodo Ricerca...!
    Ultima modifica di @Alex; 18-01-2016 09:22 
    ℹ️ Leggi di più su @Alex ...

  3. #3
    lolliman non è in linea Novello
    mmm, non credo di aver capito. Posso caricare il file cosi' riusciamo a capirci meglio? Son partito da quello che mi avevi passato tu e lo sto implementando.

  4. #4
    lolliman non è in linea Novello
    Poi sui codici non sono proprio un mostro, tral'altro come si fa a caricare gli screeN?

  5. #5
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Non credo che per comprendersi su una Query di selezione temporale serva allegare un applicativo...!

    La cosa, per come ho capito io è semplice...!
    Se vuoi conoscere l'assenza del personale dato un periodo hai 4 Date da gestire...!
    Le date di Interrogazione
    DataInizioInterrogazione
    DataFineInterrogazione
    
    E le date eventuali di Assenza del dipendente(mi pare di aver capito sia questo il tuo caso) o, se leggi da un Database di Presenze le date di presenza... questo lo devi sapere tu...!

    Se ho compreso bene, hai una tabella di giustificativi di Assenza, e questi giustificativi includono le date temporali del giustificativo stesso
    DataInizioAssenza
    DataFineAssenza
    
    Ora come fa a sapere se il dipendente nel periodo di Interrogazione è assente....?
    Se all'interno della Tabella Assenze, ed in particolare nel periodo di Interrogazione ci sono dei Periodi di Assenza sovrapposti...!
    Prova a farti questo schema temporale con i casi:
    
    -----------------------------[DataIniInterr]<--------------------------------------------------->[DataFineInterrogazione]-----------------------<
    --[DataIniAssenza]<--------------------------------->[DataFineAssenza]--------------------------------------------------------------------------
    -------------------------------------------------------------[DataIniAssenza]<--------------------------------------------------->[DataFineAssenza]
    --->[DataFineAssenza]-----------------------------------------------------------------------------------------------------------------------------------
    ----------------------------------------------------------------------------------------------------------------------------------------[DataIniAssenza]<---------
    


    Come puoi vedere se escludi i dati che hanno DataFineAssenza<DataIniInterr OPPURE DataIniAssenza>DataFineInterrogazione
    rimangono solo i RECORD in cui le date di assenza si accavallano con quelle di INTERROGAZIONE... di conseguenza ottieni soli i Dipendneti che, nel periodo di INTERROGAZIONE hanno fatto Assenze.

    A me sembra semplice...!
    ℹ️ Leggi di più su @Alex ...

  6. #6
    lolliman non è in linea Novello
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Non credo che per comprendersi su una Query di selezione temporale serva allegare un applicativo...!

    La cosa, per come ho capito io è semplice...!
    Se vuoi conoscere l'assenza del personale dato un periodo hai 4 Date da gestire...!
    Le date di Interrogazione
    DataInizioInterrogazione
    DataFineInterrogazione
    
    E le date eventuali di Assenza del dipendente(mi pare di aver capito sia questo il tuo caso) o, se leggi da un Database di Presenze le date di presenza... questo lo devi sapere tu...!

    Se ho compreso bene, hai una tabella di giustificativi di Assenza, e questi giustificativi includono le date temporali del giustificativo stesso
    DataInizioAssenza
    DataFineAssenza
    
    Ora come fa a sapere se il dipendente nel periodo di Interrogazione è assente....?
    Se all'interno della Tabella Assenze, ed in particolare nel periodo di Interrogazione ci sono dei Periodi di Assenza sovrapposti...!
    Prova a farti questo schema temporale con i casi:
    
    -----------------------------[DataIniInterr]<--------------------------------------------------->[DataFineInterrogazione]-----------------------<
    --[DataIniAssenza]<--------------------------------->[DataFineAssenza]--------------------------------------------------------------------------
    -------------------------------------------------------------[DataIniAssenza]<--------------------------------------------------->[DataFineAssenza]
    --->[DataFineAssenza]-----------------------------------------------------------------------------------------------------------------------------------
    ----------------------------------------------------------------------------------------------------------------------------------------[DataIniAssenza]<---------
    


    Come puoi vedere se escludi i dati che hanno DataFineAssenza<DataIniInterr OPPURE DataIniAssenza>DataFineInterrogazione
    rimangono solo i RECORD in cui le date di assenza si accavallano con quelle di INTERROGAZIONE... di conseguenza ottieni soli i Dipendneti che, nel periodo di INTERROGAZIONE hanno fatto Assenze.

    A me sembra semplice...!
    Aaaaaaaaaa, adesso ti ho capito appieno! ora faccio una prova, in effetti e' tanto semplice quanto efficace! ora faccio una prova

  7. #7
    lolliman non è in linea Novello
    alt, pero' quello che mi importa e' che la ricerca vesta esattamente sulla settimana in corso, quale comando devo usare per farla vestire su questa settimana?

  8. #8
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Quote Originariamente inviato da lolliman Visualizza il messaggio
    alt, pero' quello che mi importa e' che la ricerca vesta esattamente sulla settimana in corso, quale comando devo usare per farla vestire su questa settimana?
    La settimana in corso non ha una DataInizio e DataFine...?
    Ti garantisco di si...
    DataInizio=18Gen2016
    DataFine=22Gen2016
    
    Ora lascia stare per un momento come calcolare in automatico queste date... poi lo vediamo...
    ℹ️ Leggi di più su @Alex ...

  9. #9
    lolliman non è in linea Novello
    Ok ce l'ho fatta! ho invertito le cose pero', ovviamente ho messo DataInizioAssenza<=DataFineinterrogazione, oppure DataFineAssenza>=DataInizioInterrogazione
    perche altrimenti non me lo prendeva (non sapevo come escludere, quindi ho fatto quanto sopra, per includere). Ora come faccio a dargli le due date di interrogazione in automatico?
    Ultima modifica di lolliman; 18-01-2016 14:20 

  10. #10
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    La funzione [WeekDay] restituisce il giorno della Settimana... espresso in Numero da 1÷7 in base al 1° girono definito...!
    Sicchè
    ?weekDay(TuaData,vbMonday)
     ---> 1
    
    Mi pare sia semplice usare questa funzione per recuperare il Lunedì ed il Venerdì... usando DateAdd alla Datat di Oggi...

    Calcolo del Venerdì
    Venerdì=DateAdd("d",5-weekDay(Date(),vbMonday),Date)
    
    Calcolo del Lunedì
    DateAdd("d",1-weekDay(Date(),vbMonday),Date)
    
    Quindi se inserisci nella Maschera 2 TextBox con quel calcolo e, nella Query metti come Riferimenti delle Date di Ricerca quelle 2 TextBox... credo tu possa risolvere.
    SELECT * FROM T1 WHERE [DataInizioAssenza]<=FORMS!NomeForm!NomeTxtBoxDataInizio OR [DataFineAssenza]>=FORMS!NomeForm!NomeTxtBoxDataFine
    
    Se non ti interessa rendere gestibili le 2 date inserisci il calcolo nella query....
    Ora sei pienamente autonomo.
    ℹ️ Leggi di più su @Alex ...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Intervallo temporale tra record formato ora
    Da Gianluca1980 nel forum Microsoft Access
    Risposte: 2
    Ultimo Post: 05-10-2017, 19:33
  2. Intervallo temporale tra record formato ora
    Da Gianluca1980 nel forum Microsoft Word
    Risposte: 1
    Ultimo Post: 05-10-2017, 14:13
  3. Estrazione intervallo temporale
    Da theronca nel forum Microsoft Access
    Risposte: 5
    Ultimo Post: 01-11-2010, 22:33
  4. [VB6] - Ricerca Record con intervallo di date
    Da bikubika nel forum Visual Basic 6
    Risposte: 12
    Ultimo Post: 03-07-2008, 16:07
  5. [Access] maschera ricerca record per intervallo di date
    Da edirama nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 05-03-2008, 15:07