Newsgroup: it.comp.appl.access
Titolo: Alimentare tabella con query da form.

Buon pomeriggio a tutti,
nei giorni scorsi ho già ricevuto suggerimento da MAssimiliano
sull'opportunità di gestire Giacenza/Movimenti Magazzino su una o due
tabelle (1 era la risposta esatta).
Per generare i movimenti utilizzerei una query che, prelevando i dati
(Codici, Attributi, Quantità, Causale) dal DettaglioOrdini mi alimenti la
tabella Movimenti.
Dalla form Materiali, poi, potrei visualizzare i suddetti movimenti per
singolo materiale creando, nella form stessa, dei campi non associati
(vedi MA che mi ricordo!) che mi calcolino la giacenza. Alcuni campi,
della tabella Movimenti dovrebbero però essere modificabili dalla subform
contenuta in Materiali.
La domanda è: come faccio ad impedire che la query che mi ha creato la
tabella Movimenti non mi cancelli, alla successiva esecuzione, i dati che
ho modificato attraverso la subform nella tabella Materiali e, inoltre,
non mi riporti dati doppi prelevati dalla tabella DettaglioOrdini?
Grazie,
DEL_REC
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Grazie,
Creati una query in questo modo.
Vai in struttura
Inserisci la tabella Materiali
Inserisci i campi che ti interessano
Inserisci un altro campo con questa sottoquery
Acquisti:(select sum(quantità) as Pippo from
dettaglioOrdini where dettaglioordini.codici =
materiali.codice and motivazione = 'acquisto')
Fammi sapere se va.
MAssimiliano

MA ha scritto:






Ciao MAssimiliano,
avrei bisogno di, spero, piccoli chiarimenti:
1. cosa intendi quando dici "Già puoi avere una query che prende i dati da
DettaglioOrdini"? Io, in verità, avevo previsto l'esecuzione di una query
"AggiornaMagazzino" che, all'uscita dalla form Ordini mi aggiornava la
tabella MovimentiMagazzino con i dati estrapolati da DettaglioOrdini;
2. "Perchè non ti crei una query direttamente dalla tabella Movimenti e la
metti come normale sottomaschera????". Intendi come origine dati della
sottomaschera Movimenti della maschera Materiali? In caso affermativo,
posso poi modificarne dei valori nella tabella Movimenti attraverso questa
sottomaschera?
3. "Creati una query in questo modo..." . Lo scopo di questa query è
rispondere al mio ultimo quesito? Dove dovrei richiamare questa query?
Grazie MA, sempre gentile,
DEL:REC


 DEL:REC
Spero di aver fatto un pò di luce.
MAssimiliano

[CUT]






Cerco di spiegarmi meglio:
ho una tabella Ordini che, attraverso una sottomaschera DettaglioOrdini mi
permette l'inserimento di Codice/Taglia/Colore/Quantità di prodotti. Ho,
inoltre una tabella Movimenti
(IDOrdine/IDMateriale/Taglia/Colore/Quantità/Data/Causale/Annullato).
Vorrei che, alla conferma dell'Ordine (in uscita ad esempio) mi venisse
alimentata questa seconda tabella con i dati di DettaglioOrdini. Dalla
maschera Materiali, poi, dovrei poter visualizzare il/i movimento/i
relativi ai singoli materiali ma "anche" poterne variare i valori
all'occorrenza. Infine (scusate la prolissità) non vorrei che ci fossero
successivi aggiornamenti (ad esempio dopo l'inserimento di altro Ordine)
che mi andassero a cancellare, modificare o sovrascrivere quelle modifiche
apportate manualmente nella sottomaschera MOvimenti all'interno della
maschera Materiali.
DEL_REC


 maschera Materiali.
Questo poi ci pensiamo in un secondo momento.
Magari con un altro post.
MAssimiliano

 MAssimiliano
Grazie,


 > MAssimiliano
Lo avresti lo stesso nel momento in cui visualizzi
i dati raggruppati della tabella movimenti, mente
se tu volessi vedere
i dati "esplosi" potresti cmq andare nella tabella
DettaglioOrdini
MAssimiliano

 MAssimiliano
Scusa MAssimiliano,
avrei cosa lo stesso? Grazie,



L'inconveniente di non poter modificare.
MAssimiliano

MA ha scritto:


E fino a qui mi sembra che fossimo d'accordo; per questo io volevo
alimentare una tabella Movimenti da query su DettaglioOrdini (invece che
effettaure direttamente la query come origine dati della subform Movimenti
della form Materiali) in modo che, in un momento qualsiasi successivo
all'inserimento, potessi modificare tali record. Mi rimaneva sempre il
problema di non far sparire le modifiche alla successiva query su
DettaglioOrdini.


"DEL_REC" <domanda...@rispodnerecortes.ia> ha
scritto nel messaggio
news:cipedb$et0$1...@news.newsland.it...

Io vorrei capire.
Ho un articolo
tabella materiali
campo    valore
codice Pippo
descr   abitante di Topolinia
Dettaglioordini
campo     valore
ric_codice Pippo
quantità    10
data    1.7.04
motivazione Acquisto
ric_codice Pippo
quantità    10
data    1.8.04
motivazione Acquisto
ric_codice Pippo
quantità    10
data    1.9.04
motivazione vendita
Query Giaceza
Select codice,
(select sum(quantità) as acq from dettaglioOrdini
where ric_codice = materiali.codice and
motivazione = 'Acquisto') as Acquisti
(select sum(quantità) as ven from dettaglioOrdini
where ric_codice = materiali.codice and
motivazione = 'vendita')    as Vendite
(nz(acquisti)-nz(vendite) as Giacenza
from materiali
avrai un tracciato record così
Pippo    20    10    10
che è credo quello che ti serve.
O non ho capito niente???
Poi se fai una modifica in dettaglio ordini, tipo
riduci le vendite lui automaticamente ti aggiusta
la giacenza
ma quanto rifguarda invece lo storico ci facciamo
un .addnew da un altra parte (o nella stessa ma
con una motivazione diversa)
MAssimiliano

 MAssimiliano
MAssimiliano,
non è che non presto attenzione alle tue risposte, anzi mi sono di grande
aiuto ma, proprio in questo momento devo fuggire. Leggerò i tuoi appunti
appena possibile e poi cercherò di spiegarmi meglio.
Nel frattempo, grazie,


 MAssimiliano
Ciao MA,
le cose, togliendo il superfluo (altre tabelle non coinvolte) stanno così:
Tabella Materiali: IDMAteriale , Descrizione;
Tabella Ordini: IDOrdine, DataOrdine
Tabella DettaglioOrdini: IDOrdine, IDMateriale, Misura, Colore, Quantità
Query: SELECT DettagliOrdini.IDOrdine, DettagliOrdini.IDMateriale,
DettagliOrdini.Misura, DettagliOrdini.Colore, DettagliOrdini.Quantità,
OrdiniProduzione.DataOrdine, "Acquisto" AS Causale
FROM OrdiniProduzione INNER JOIN (Materiali INNER JOIN DettagliOrdini ON
Materiali.IDMateriale = DettagliOrdini.IDMateriale) ON
OrdiniProduzione.IDOrdine = DettagliOrdini.IDOrdine.
Orbene: quando confermo l'ordine (sempre di Acquisto), viene eseguita la
query che aggiorna i movimenti ponendo ad "Acquisto" la causale di tutti i
movimenti. Dalla form Materiali, poi, riesco a vedere la situazione
movimenti per materiale e vorrei poterla modificare da qui (ad esempio
caricando una riga con causale "Vendita" o "Annullo", ecc). Inoltre "non"
vorrei che al caricamento del prossimo ordine la riesecuzione della query
mi annullasse le modifiche che ho apportato.
Sono stato un po' più chiaro?
Ciao,


 Ciao,
Meglio così??
MAssimiliano

 MAssimiliano
Ciao MAssimiliano,
l'IDMateriale_AfterUpdate di cui mi parli è l'IDMateriale del
DettaglioOrdini o di Ordini? E la causale in che archivio andrebbe
inserita?
Ho comunque bisogno di una tabella Movimenti, o no? Meglio ricominciare
tutto da capo?
Grazie,


 Grazie,
dai che a pizzichi e a morsi ne veniamo fuori
ciao MAssimilaino