Newsgroup: it.comp.appl.access
Titolo: Problemino con sottomaschera: eliminare un record in essa visulizzato

Salve a tuti 
Scusate la banalità della domanda. 
Sto cercando di collaudare il mio database e sto provando ad usarlo
per vedere quali cosa non sa fare e quali di esse potrebbero servire.
In una sottomaschera vengono visualizzati gli ordini che un cliente ha
effettuato e volendo, premendo un pulsante, si può vedere il dettaglio
di ogni ordine.
Se però il cliente annulla l'ordine, o si è solo fatta una prova per
vedere come funziona il DB, potrebbe essere necessario cancellare il
record dell'ordine di quel certo cliente.
ora questo sarebbe facile se il tasto col triagolino e la x non fosse
ingrigito ogni volta che seleziono un record visualizzato in una
sottomaschera.
ho provato a controllare la proprietà Dati/Consenti Eliminazione della
sottomaschera ( e anche della maschera già che c'ero) e sono impostate
su "si".
Però nella maschera cancello i clienti come mi pare, mentre nella
sottomaschera non posso cancellare i loro ordini ...
c'è un qualche vincolo legato alle relazioni della sottomaschera che
io sto ignorando e per questo non capisco o di cosa pensate si possa
trattare?
grazie a tutti per l'aiuto e/o per avere letto questo messaggio.

 ha scritto nel messaggio
news:1co4ivcrhphjs3nlm...@4ax.com...

Controlla integrità referenziale e abilità cancella record correlati a
catena.
Se non riesci così scrivi una routine che cancella automaticamente i record
che si riferiscono al record principale cancellato.
Ciao
Andrea

 wrote in message
1co4ivcrhphjs3nlm...@4ax.com...

Per quanto ho capito la tabella Clienti è in relazione uno-a-molti con la
tabella Ordini che a sua volta è in relazione uno-a-molti con la tabella
DettaglioOrdini.
Se non l'hai fatto, per ambendue le relazioni uno-a-molti aggiungi
l'integrità referenziale ed attiva l'opzione Elimina record correlati a
catena.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

catena.
Credevo di no e invece lo avevo messo. Ho messo pure l'aggiornamento,
cioè ho usato tutte e tre le spunte di Access Xp e ho usato sempre il
tipo di join 1: inclusi solo le righe con campi uguali da entrambe le
tabelle.
é verametne un mistero.
l'unica cosa che mi viene in mente è che avendo usato un esempio di
acces e poi fatto le modifiche che mi servivano ora ci sia qualche
cosa di subdolo che impedisce la cancellazione perché l'esempio
iniziale era così ... 
grazie comunque a tutti per l'aiuto. chi lo sa se si troverà mai la
spunta responsabile di tutto questo ... :-)

 wrote in message
mij9iv4f4ttsi6oe9...@4ax.com...

Cosa hai come origine record della sottomaschera?
Non è per caso che hai una query non aggiornabile?


origine record della sottomaschera
SELECT DISTINCTROW Ordini.IDOrdine, Ordini.IDCliente,
Ordini.DataOrdine, Ordini.SpeseTrasporto, Ordini.[%ImpostaVendite],
Sum(Clng(nz([Quantità]*[PrezzoUnitario]*(1-[Sconto]))*100)/100) AS
TotaleRiga, Ordini.DataSpedizione, [Query Somma pagamenti].[Totale
pagamenti] AS [Totale pagamenti] FROM (Ordini LEFT JOIN [Query Somma
pagamenti] ON Ordini.IDOrdine=[Query Somma pagamenti].IDOrdine) LEFT
JOIN [Dettagli sugli ordini] ON Ordini.IDOrdine=[Dettagli sugli
ordini].IDOrdine GROUP BY Ordini.IDOrdine, Ordini.IDCliente,
Ordini.DataOrdine, Ordini.SpeseTrasporto, Ordini.[%ImpostaVendite],
Ordini.DataSpedizione, [Query Somma pagamenti].[Totale pagamenti]; 
A dire il vero non so nemmeno se questa origine dati sia una query,
però l'ho usata diffusamente per allargare le funzioni del database
visto che l'esempio di Access da cui sono partito la usava sempre.
C'è forse qualche problema per avere usato Sum?
Se ho capito bene la Query Somma dei pagamenti dovrebbe essere
aggiornabile, lavora sulla tabella Pagamenti e fa la somma raggruppata
per ogni IDOrdine. Quindi non mi pare ci possanno essere casini
nell'aggiornamento visto che non coinvolge campi calcolati da fuori o
cose simili come ho letto sull'help del programma.
Questa cosa mi manda ai matti ...
Mi sa che dovrò chiedere agli utenti finali del DB di cancellare tutto
il contenunuto dell'ordine e di tenersi un ordine di 0 euro ... 
Access croce e delizia ... 

 wrote in message
tc8civkk13a2l5og8...@4ax.com...

Quella che hai postato è una query di raggruppamento, quindi, come
immaginavo è un recordset non aggiornabile dalla quale quindi non puoi
cancellare record.


cancellare record.
Ok, ho fatto male a fidarmi e seguire la strada mostrata dall'esempio
di Access. Non fa niente, questa volta la cosa è aggirabile con un
poco estetico ordine di zero euro, del resto è il mio primo db
relazionale fatto in access, e in assoluto il primo relazionale ...
Tornado al recordset e alla query di raggruppamento: da quel che ho
capito, visto che l'help di Access non parla di SELECT con questa
origine dati in pratica aggiungo alla lista dei campi tutti i campi
che mi pare, e se voglio possono essere pure oggetti calcolati, come
ad esempio una somma, e li posso usare come se provenissero da una
tabella, sono campi a disposizione nella machera.
Ora se questo è il modo, diciamo debole o poco elastico, di fare il DB
in questione mi chiedo quale il modo migliore di farlo, ma per questo
forse è necessario che apprenda meglio Access e poi forse aprirò un
nuovo tread.
grazie per l'aiuto e per avere scovato il mio problema che sarebbe per
sempre rimasto li ...
grazie

 grazie
Access č elastico in maniera proporzionale alla conoscenza che si ha
dell'applicativo.
Di fatto (e penso che sia cosě per qualsiasi database relazionale), č
aggiornabile qualsiasi oggetto per il quale risulti inequivocabilmente
determinato l'item da aggiornare, e questo in una query di raggruppamento
(per giunta basata sul join di piů tabella) non č affatto vero.
Non č preciso affermare, come hai fatto tu, che l'help non parla di quando
una query č o non č aggiornabile; per maggiori chiarimenti in merito cerca
sull'help l'argomento Quando aggiornare dati da una query.
