Query per la scadenza data

giovedì 27 novembre 2008 - 15.50

luxsor Profilo | Guru


come posso realizzare una query che mi avvisi qualche giorno prima o anche un mese prima, della scadenza? Cioè
Ho un db access con un campo (date/time) dove inserisco una data di scadenza.
Come posso creare una query in grado di avvisarmi prima (qualche giorno o un mese) della scadenza?

jenga Profilo | Newbie

>come posso realizzare una query che mi avvisi qualche giorno
>prima o anche un mese prima, della scadenza? Cioè
>Ho un db access con un campo (date/time) dove inserisco una data
>di scadenza.
>Come posso creare una query in grado di avvisarmi prima (qualche
>giorno o un mese) della scadenza?
>
Usa la funzione datediff per estrarre la differenza in giorni tra oggi e la data di scadenza:
DATEDIFF(dd, getdate(), <data_scadenza>)

poi dipende di cosa deve avvisarti...
--
oggi la mia voglia di lavorare è pari a null

luxsor Profilo | Guru

Con access getdate() non funziona.
Mi genera un'eccezione

jenga Profilo | Newbie

hai ragione, quella è la funzione di SQL Server
Con access una Now ()
--
oggi la mia voglia di lavorare è pari a null

luxsor Profilo | Guru

Si ho provato ma mi genere questa eccezione:

"Si sono verificati errori in un'operazione OLE DB composta da più passaggi. Controllare i singoli valori di stato OLE DB, se disponibili. Nessuna operazione eseguita. Chiamata di routine non valida"

la query è questa: select DateDiff('g',now(),datascadenza) from scadenze

Non mi fa leggere la riga creata con il valore della differenza

jenga Profilo | Newbie

>la query è questa: select DateDiff('g',now(),datascadenza) from
>scadenze
La mia è così:
DateDiff('d',Now(),[DATA_PESA])


--
oggi la mia voglia di lavorare è pari a null

luxsor Profilo | Guru

Ho sbagliato a scrivere io
Si in access funziona, me la esegue perfettamente, ma questo problema me lo da in vb.net.
Non mi riesce ad estrarre il valore del campo dinamico (quello con il valore della differenza).

lbenaglia Profilo | Guru

>Ho sbagliato a scrivere io
>Si in access funziona, me la esegue perfettamente, ma questo
>problema me lo da in vb.net.
>Non mi riesce ad estrarre il valore del campo dinamico (quello
>con il valore della differenza).
Hai specificato un alias di colonna mediante la keyword AS <tuo alias>?

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

luxsor Profilo | Guru

Si.
MyCmd = DBConn.CreateCommand()
MyCmd.CommandText = "select DateDiff('g',now(),[datascadenza])as Valore, sito from scadenze"

MyReader = MyCmd.ExecuteReader

Do While MyReader.Read
Dim C As Integer
C = MyReader.Item("Valore")
Loop

Da cosa potrebbe dipendere?

lbenaglia Profilo | Guru

> Do While MyReader.Read
> Dim C As Integer
> C = MyReader.Item("Valore")
> Loop
>
>Da cosa potrebbe dipendere?
Dichiarando una variabile all'interno di un ciclo While...Loop, il suo scope sarà limitato al ciclo stesso, quindi verrà deallocata al termine del loop.
Sposta la Dim al di fuori del ciclo, anche se facendo in questo modo C verrà valorizzata con l'ultimo valore restituito dalla query.

Ora, si può sapere che cosa vuoi fare?

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

luxsor Profilo | Guru

Questa prova l'ho già fatta.
Il problema è nell'estrarre il valore ottenuto dalla funzione DateDiff, perchè se nella query aggiungessi un'altro campo così:
MyCmd.CommandText = "select DateDiff('g',now(),[datascadenza])as Valore, Nome from scadenze"

mydatareader.item("Nome").tostring

mi restituisce il valore corretto.


luxsor Profilo | Guru

Ho provato adesso con Access 2003 ad eseguire la query e nella colonna che dovrebbe contenere il valore della datediff mi esce #ERRORE
Quindi il problema sta nella query

luxsor Profilo | Guru

Ho risolto il DataInterval non è 'g' ma 'd'.
Una mia svista.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5