Newsgroup: it.comp.appl.access
Titolo: Aggiornare solo i record modificati

ciao a tutti
con questa query di aggiornamento, aggiorno ogni volta pi� di 4000 record.
E' possibile aggiornare sol� i record modificati?
se si, come?
UPDATE FattureFo RIGHT JOIN (TbCarichi LEFT JOIN DettaglioFo ON
TbCarichi.IDCarico = DettaglioFo.IDCarico) ON FattureFo.IDFattura =
DettaglioFo.IDFattura SET TbCarichi.nFatturaFo = FattureFo.[N� Fattura
Fornitore], TbCarichi.DataFatturaFo = FattureFo.Del;
 
Grazie
 
 
 

Senza entrare nel dettaglio e significato della query
se di quei 4000 record vuoi aggiornare solamente i record diversi
nei 2 campi interessati all'aggiornamento ci aggiungi un WHERE
 
 
WHERE
(
(TbCarichi.nFatturaFo <> FattureFo.[N° Fattura Fornitore]) 
AND 
(TbCarichi.DataFatturaFo <> FattureFo.Del)
)
 
 
Attento ai valori Null e stringhe di lunghezza 0

Perdonami
Mi sa che devi mettere OR invece di AND
 
Fai qualche esperimento

 Fai qualche esperimento
 
Grazie 
 
 

 ha scritto nel messaggio 
news:527ccc36$0$1381$4faf...@reader1.news.tin.it...

sono di nuovo a chiedere aiuto perch� mi aggiorna solo dove
esiste un dato(cio� dove il campo � popolato)
WHERE (((TbCarichi.nFatturaFo)<>[N� Fattura fornitore])) OR 
(((TbCarichi.DataFatturaFo)<>[N� Fattura fornitore])); 
 
 

 (((TbCarichi.DataFatturaFo)<>[N° Fattura fornitore]));
 
Mancini t'aveva detto di stare attento ai Null!
 
Nz(TbCarichi.nFatturaFo)<>[N° Fattura fornitore] OR
Nz(TbCarichi.DataFatturaFo)<>[N° Fattura fornitore]
 
Mai rivelare la versione di Access che si sta usando... è un segreto da 
portarsi nella tomba!
Se la tua versione di Access non ha Nz() built-in... spera che qualcuno 
t'invii l'analoga UDF.
 
Bruno
 
PS
==
Ma come si fa a chiamare un campo, o un controllo,
[N° Fattura fornitore]?
cerca di non lasciar spazi e di non usar apostrofi, ° et similia,
salvo le accentate, ché appartengono alla nostra lingua.
 
[N° Fattura fornitore] è insieme un numero di fattura e una data?
 
 

 [N° Fattura fornitore] è insieme un numero di fattura e una data?
no solo numero
 
Grazie Bruno
 
cosi funziona
WHERE (((Nz([TbCarichi].[nFatturaFo]))<>Nz([N° Fattura fornitore]))) OR 
(((Nz([TbCarichi].[DataFatturaFo]))<>Nz([del]))); 
 
 

> t'invii l'analoga UDF.
 
ho Access 2003


 ....  Nz([TbCarichi].[nFatturaFo])<>Nz([N° Fattura fornitore]) .....
 
A parer mio c'è ancora qualcosa che non va bene.
Stilizziamo la tua formula cosi 
 ....  Nz(Car.NFo)<>Nz(Fat.NFf) .....
 
--- Immagina di avere a Sx un valore Nullo e a Dx un valore 0
--- allora a Sx diventa 0 per il Nz  e a Dx rimane 0
--- Il record NON viene aggiornato perche considera uguali i valori di Sx e Dx
--- ma in effetti sono diversi 
 
 
Tu forse non ti accorgi perche lavori con date e testi che non possono mai essere uguali al NUMERO 0  ( ad eccezione forse del 30/12/1899 h 00.00.00 )
ma se tu lavorassi con numeri allora dovresti fare:
....  Nz(Car.NFo,"")<>Nz(Fat.NFf,"") .....
Trasformi i valori Null in stringhe di lunghezza zero
 

 ha scritto nel messaggio 
news:bf1dec7e-903a-4037...@googlegroups.com...

grazie Mancini,
nel modo da te indicato va bene in entrambi i casi?
cioè che sia o non sia numerico 
 
 

 cioè che sia o non sia numerico
 
Secondo me Si  io lo uso da tempo senza problemi con date, testi, numeri, booleani eccetera senza problemi,
 
La ambiguita è solamente fra Null e stringa di lunghezza zero
tu trasformi il 1° nel 2° 
ed elimini la ambiguita alla radice
 

 ha scritto nel messaggio 
news:a09125d9-2c73-4c8e...@googlegroups.com...

grazie