Newsgroup: it.comp.appl.access
Titolo: data record precedente e successivo a quello corrente

ciao a tutti
 
ho questa query come origine riga di una casella di riepilogo, dove ho aggiunto un terzo campo per individuare
la data del record precedente e successivo a quello corrente, ma non riesco.
 
SELECT A.IdOrdine, A.DataOrdine, (Select Count(*)  FROM TbOrdini  Where [IdCliente] = [A].[IdCliente] AND IdOrdine<= [A].[IdOrdine]) AS CampoAggiunto
FROM TbOrdini AS A;
 
grazie.

cosa intendi con data del record precedente e successivo? uno o l'altro 
oppure insieme; tipo due righe che ti dicano sopra prec e sotto succ?
un esempio aiuterebbe a capire
 
Akery
 
ha scritto nel messaggio 
news:862383e3-ccb1-4eef...@googlegroups.com...

---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
 
 


ciao Akery
è sopra precedente e sotto successivo

Salve,
 
Francodellavalle4 ha scritto:

Come Akery ha già scritto manca un esempio concreto o una descrizione 
più precisa. La sfera di cristallo mormora ca.
 
SELECT A.IdOrdine, A.DataOrdine,
 
(Select Max(DataOrdine) FROM TbOrdini WHERE IdCliente = A.IdCliente AND 
IdOrdine <= A.IdOrdine) AS Prima,
 
(Select Min(DataOrdine) FROM TbOrdini WHERE IdCliente = A.IdCliente AND 
IdOrdine >= A.IdOrdine) AS Dopo,
 
FROM TbOrdini AS A
 
...dove soprattutto il criterio per IdOrdine non è chiaro perché nessuno 
qui conosce i tuoi dati.
 
Forse invece intendi:
 
(Select Max(DataOrdine) FROM TbOrdini WHERE IdCliente = A.IdCliente AND 
DataOrdine < A.DataOrdine) AS Prima
 
ecc.?
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 

 FROM TbOrdini AS A


Ciao Karl 
 
ho una maschera in visulaizzazione maschere continue,
con origine dati da query,
con due controlli:
1- primo
2- secondo
 
se p.e. ho:
 
 
IdOrdine     dataOrdine
   1          29/12/15
   2          31/12/15
   3          04/01/16
   4          05/01/16
ecc.
 
vorrei avere ....
posizionandomi sul primo record 
primo             secondo 
vuoto             31/12/15
 
posizionandomi sul secondo record 
primo             secondo 
29/12/15          04/01/16
 
posizionandomi sul terzo record 
primo             secondo 
31/12/15          05/01/16
 
posizionandomi sul quarto record 
primo             secondo 
04/01/15          vuoto
 
 
grazie

magari è più semplice del previsto, se idordine è cronologico e senza 
intoppi la funzione dlookup può aiutarti.
 
prova a vedere se va bene il risultato cosi ottenuto:
https://www.dropbox.com/s/68e0qpz35v9i8tp/presucc.accdb?dl=0
 
 
Akery
 
 
ha scritto nel messaggio 
news:8e1204ff-06cd-4aa1...@googlegroups.com...





Direi che ti servono < e > come operatori invece di <= e >= (per l'Id 
perché un po' più veloce della data) ma anche se nel frattempo hai 
cambiato da una casella di riepilogo ad una maschera continua 
l'enunciato SQL sarebbe ca. come l'ho scritto.
 
Se non serve o funziona, scrivi in quale rispetto ecc.



non riesco ad aprirlo


ciao Karl
va bene, tranne quando si trova sull'ultimo record(quello vuoto)
che anzichè avere 
vuoto e vuoto
dovrebbe darmi: vuoto - 05/01/16


ciao Karl
e se volessi utilizzare un'espressione da inserire nei due controlli,
com è bene fare?
grazie

 e se volessi utilizzare un'espressione da inserire nei due controlli,
 
Primo ca.
 
=nz(DomMax("DataOrdine";"TbOrdini";"IdCliente=" & [IdCliente] & " AND 
IdOrdine <=" & [IdOrdine]);"vuoto")
 
ed equivalente per l'altro controllo.



ciao Karl e grazie
 
=nz(DMax("DataOrdine";"TbOrdini";"IdCliente=" & [IdCliente] & " AND IdOrdine >" & [IdOrdine]);"vuoto")
 
però se ho p.e.
31/03
01/04 <-e mi trovo in questo punto, ho 04/04 anziche' 03/04
03/04
03/04
04/04
 
in pratica mi deve leggere la data successiva e non la piu' alta


risolto con DMin anzichè DMax