Newsgroup: it.comp.appl.access
Titolo: Query aggiornamento

Salve, mi chiamo Egidio e vorrei sottoporre alla vostra attenzione un
problema che ho riscontrato con una query di aggiornamento. Ho un archivio
di clienti con anagrafica, che interrogo tramite una maschera di ricerca con
filtri. Ho aggiunto la casella di controllo visitato. Ora ho provato ad
impostare una query di aggiornamento, che nel momento in cui viene impostato
il visto sulla casella visitato dovrebbe, aggiungere questo risultato nella
tabella. Questo non avviene. Potete aiutarmi per piacere?
Grazie infinite
Egidio

 Egidio
-- 
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
---------------------------------------------------- 

 ha scritto nel messaggio
news:08w%d.3788$IN.9...@twister2.libero.it...

No non c'č nessun motivo. Sinceramente ho impostato nel campo aggiorna della
query il parametro on perņ l'imposta tutti come visitato, invece vorrei solo
i record filtrati. Grazie

 i record filtrati. Grazie
Filtra la query di aggiornamento con la chiave primaria del record corrente
della maschera.


 ----------------------------------------------------
In base al tuo suggerimento, dovrei aggiungere nel campo della query oltre
al campo visitato anche il campo ID?
Il tutto devo associarlo ad un pulsante, in modo tale che quando metto il
visto visitato nel campo, va ad aggiornare la tabella.

 visto visitato nel campo, va ad aggiornare la tabella.
Deciderai tu a fronte di quale evento eseguirai la tua query di
aggiornamento, che però, come ripeto è del tutto inutile: è sufficiente
associare la casella di controllo al campo di tipo Si/no, ma tu questo non
lo vuoi fare e non capisco perché: forse è perché è tropposemplice e facile?


 ha scritto nel messaggio
news:JbA%d.4142$IN.1...@twister2.libero.it...

Scusami Roberto perchè mi dici che non voglio associare la casella di
controllo al campo Si/No?
Forse non riesco a farmi capire:
1) Ho un database con maschera di ricerca
2) Una volta filtrati i record vorrei aggiornare il campo visitato con si
3) Tutto questo pensavo di farlo con una query di aggiornamento con il
seguente codice SQL: UPDATE Anagrafica SET Anagrafica.Visitato = Sì WHERE
4) Nel campo Where non so cosa inserire, e non so nemmeno se la sintassi è
corretta
Grazie e scusami

 inserire, e non so nemmeno se la sintassi è corretta
Se ho ben inteso, aggiungi il campo ID alla query filtrata, quindi:
UPDATE Anagrafica SET Visitato=1 WHERE ID IN (SELECT ID FROM
miaQueryFiltrata);
HTH.
Alessandro

 ha scritto nel messaggio
news:d1mslp$ibp$1...@newsread.albacom.net...

Ciao Alessandro, ho provato il tuo suggerimento ma il pc si blocca con la
dicitura in basso a destro query in esecuzione.
Considera che interrogo un database con circa 30000 nominativi.
Grazie.


30000 nominativi prima o dopo aver applicato il filtro? Il campo ID è chiave
primaria, vero? La query filtrata quanto tempo impiega a restituirti i
risultati?
Alessandro

 30000 nominativi prima o dopo aver applicato il filtro?
Prima di aver filtrato
Il campo ID è chiave primaria, vero?
Si ID è chiave primaria
La query filtrata quanto tempo impiega a restituirti i  risultati?
E' quasi istantanea. Ti allego il codice SQL della query1:
SELECT DISTINCT Anagrafica.Cognome, Anagrafica.Indirizzo, Anagrafica.Loca,
Anagrafica.Prov, Anagrafica.CAP, Anagrafica.Visitato, Anagrafica.Telefono
FROM Anagrafica
WHERE (((Anagrafica.Cognome)=IIf(" " & [Forms]![Ricerche]![Cognome]="
",[Anagrafica].[Cognome],[Forms]![Ricerche]![Cognome])) AND
((Anagrafica.Indirizzo) Like "*" & [Forms]![Ricerche]![Indirizzo] & "*") AND
((Anagrafica.Loca) Like "*" & [Forms]![Ricerche]![Loca] & "*") AND
((Anagrafica.Prov) Like Nz([Forms]![Ricerche]![Prov],"*")) AND
((Anagrafica.CAP) Like "*" & [Forms]![Ricerche]![CAP] & "*") AND
((Anagrafica.Visitato) Like "*" & ([Forms]![Ricerche]![Visitato] & "*")));

 E' quasi istantanea. Ti allego il codice SQL della query1:
A parte che non vedo il campo ID nella query, non capisco cosa c'è che non
va: se la query, come dici, è quasi istantanea, altrettanto dovrebbe esserlo
l'UPDATE, visto che i record da aggiornare sono gli stessi.
Fai un tentativo con una tabella meno popolosa, ma non credo che il num. di
records sia il problema...
Alessandro

 ha scritto nel messaggio
news:d1mvl8$jrb$1...@newsread.albacom.net...

Posso chiederti perchè imposti il campo Visitato = 1?
Grazie
Egidio

 Grazie
Prego.
Alessandro

 ha scritto nel messaggio
news:d1n1g3$kkf$1...@newsread.albacom.net...

Giusta intuizione. Quindi 1 sta per si 2 sta per no.
Il resto della sintassi invece cosa significa?
UPDATE Anagrafica (Aggiorna la tabella Anagrafica)
SET Visitato=1 (Selenziona Visitato = Si)
WHERE ID IN (SELECT ID FROM  miaQueryFiltrata) Non capisco questa
espressione
Scusami e grazie

 WHERE ID IN (SELECT ID FROM  miaQueryFiltrata)
...in tutti quei record il cui ID è presente nelle query chiamata
miaQueryFiltrata (ovviamente tu dovrai mettere qui il nome reale della tua
query).
Alessandro

 ha scritto nel messaggio
news:d1n2a4$lsi$1...@newsread.albacom.net...

Il problema allora sta nel fatto che la mia query non filtra con il campo
ID. Ho una maschera in cui tutti i campi possono essere ricerca, tranne
l'Id. E' il caso di aggiungerlo nella sintassi della query, anche se non
viene utilizzato?
Grazie ancora

 query, anche se non viene utilizzato?
Sě, basta aggiungerlo alla SELECT, non alla WHERE.
Alessandro

 Alessandro
Ciao Alessandro,ti ringrazio infinitamente per la tua disponibilità. Non ci
crederai ho fatto una prova, che credevo stupida invece funziona. Ho
inserito nella condizione WHERE della Query di aggiornamento gli stessi
criteri della Query di selezione. Sembra funzionare. Grazie ancora e se non
ci si risente Auguri di Buona Pasqua