Newsgroup: it.comp.appl.access
Titolo: Re: Risultato query non modificabile: perchè?

 Giacomo
Credo che la colpa sia della SubSelect, che se non ricordo male
rende il Recordset ReadOnly.
Prova ad eliminare la parte di SubSelect per il prezzo, e vedi che succede.
Ciao
@Alex
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------

Ho un database con la struttura rappresentata qui:
http://www.studio-elle.com/temp/db.htm
E sto creando una maschera "lavori" con la relativa sottomaschera che
deve elencare gli articoli relativi al lavoro corrente.
In seguito al mio post "record in relazione sia alla maschera che alla
sottomaschera" del 28/2 e alla risposta di Roberto, ho messo a punto una
query che funge da origine per la sottomaschera nel database: il
problema č che il risultato di questa query non č modificabile, quindi
ad esempio non posso aggiungere un articolo ad un lavoro!
La query che vedete nella pagina (che ho cercato di formattare per
rendere piů chiara, evidenziando le subquery) č diversa da quella
suggeritami da Roberto per due questioni:
- ha una subquery in piů, quella in verde, che rappresenta uno step
preliminare per avere a disposizione anche la descrizione e la categoria
degli articoli invece che solo il codice. Ciononostante non č qui il
problema, dato che se provo ad eseguire solo la query blu (che include
la sub-query verde), il risultato č modificabile...
- ho provato a trasformare l'operazione di WHERE suggeritami da Roberto
per selezionare il prezzo in una INNER JOIN, credendo che fosse il WHERE
a rendere il risultato non modificabile. Non č cosě...
Allora vi chiedo:
- perchč il risultato non č modificabile?


 succede.
...se però intendi subquery, nella versione definitiva è proprio per il 
prezzo che non si fanno subquery: in pratica la query del prezzo è 
quella principale, all'interno della quale c'è una subquery per avere il 
listino e una per avere la descrizione.
Ad ogni modo, come ho scritto nel precedente messagio, se eseguo solo la 
select in blu (includendo quella in verde), e quindi in pratica mi 
limito a ottenere articolo, descrizione e listino, tutto funziona. 
Peccato però che il prezzo mi serva...
Ho anche provato a settare indipendentemente l'originel del controllo 
prezzo nella sottomaschera, ma non me lo permette: deve per forza essere 
una campo della query su cui si basa la maschera...
Non so proprio che pesci prendere...
Ciao
Giacomo 

 ha
scritto nel messaggio news:39bieuF...@individual.net...

Questa è una SubSelect o SubQuery.
E questo è il motivo del Recordset non Updatabile.
Come ti ho accennato prova a rimuoverlo e dovrebbe
andare.
(SELECT prezzo FROM dettaglio_listini WHERE dettaglio_listini.id_articolo =
ndl.id_articolo AND dettaglio_listini.id_listino = ndl.id_listino) AS prezzo
Se confermi la cosa => Non puoi farlo con una SubSelect come dicevo nel 1°
post.
Ciao


 dettaglio_listini.id_listino = ndl.id_listino) AS prezzo
Esatto, che fosse questa l'origine del problema l'avevo già detto (forse 
in modo non chiaro!) nel mio post originale.
Il fatto è che "rimuoverla" come dici tu vuol semplicemnte dire non 
"recuperare" il prezzo, ma limitarsi ad articolo, descrizione e listino.
I problemi a questo punto sono due:
- perchè il risultato della subselect non è aggiornabile?
- come posso risolvere in altro modo, dato che a me il prezzo serve?
Grazie
Giacomo 

 Giacomo
Prova ad usare una funzione di aggregazione sui Domini per
aggirare il problema(potresti avere una riduzione prestazionale
nel caso di grosse quantità di dati, oppure crea una Funzione
alla quale passi il parametro e recupera dal Recordset(ReadOnly) aperto
sulla tabella Dettagli, è decisamente più performante.
Valuta tu cosa conviene.
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 nel caso di grosse quantità di dati
Ok, questo è un problema da affrontare eventualmentee in seguito... 
adesso mi preme sapere come posso recupeare il prezzo. Scusa se te lo 
chiedo, ma ho espresso bene il mio problema? Perchè (e sarà sicuramente 
colpa mia) non riesco bene a capire come le cose da te suggerite possano 
essere risposte al mio dilemma...
Grazie e scusa dell'insistenza
Giacomo 

 ha 
scritto nel messaggio news:39dfiqF...@individual.net...

Se hai una sola tabella e ci dlookup-pi il prezzo, la tabella rimara 
tranquillamente in scrittura
MAssimiliano 

 Giacomo
Vedi la Funzione Dlookup(...), è ben documentata
nell'Help con esempio.
Serve proprio per recuperare il valore di un Campo
di un Recordset(tabella/Query) passando anche l'eventuale
WHERE condition/s
Nella tua Query metti:
Prezzo:Dlookup("Prezzo";"NomeTabella";"CONDIZIONE....")
Ciao


Grazia da entrambi: ora studio, provo e poi vi faccio sapere!
A presto... anche se spero per voi di no!  ;-)
Giacomo