Newsgroup: it.comp.appl.access
Titolo: Organizzare tabelle

Ciao a tutti.
Questa volta non mi serve tanto un aiuto tecnico quanto di concetto.
Emetto un ordine a fornitore con articoli "a" e "b". Il fornitore consegna
solo una parte di ciň che ho ordinato (magari tutti gli articoli "a", ma
solo alcuni articoli "b"; nel frattempo io emetto un altro ordine per
articoli "b" e "c"; con la consegna successiva il fornitore evade tutto,
ecc....
In sostanza ho piů bolle in entrata che si riferiscono allo stesso ordine
e/o piů ordini interessati dalla stessa bolla, il tutto complicato dal fatto
che lo stesso articolo posso ordinarlo da fornitori diversi.
Ho pensato di utilizzare due tabelle una per gli ordini ed una per le
consegne dei fornitori, in questo modo posso gestire la giacenza di
magazzino, ma non riesco ad avere un collegamento tra il numero d'ordine e
il numero di bolla.... (a meno di non segnare a mano il numero d'ordine
relativo ad ogni articolo che carico in entrata), e neppure a sapere quando
un ordine č evaso totalmente
Come gestireste una situazione del genere?
Grazie, Paolo


Se emetti un ordine al fornitore sai cosa hai ordinato.
Quindi nella stessa tabella metti un campo con Arrivato Si/No e uono che
memorizzi la data della bolla del fornitore
Per quanto riguarda se l'ordine è evaso io ho fatto cosi:
10 = in studio
20 = lavorazione
50 = evaso
Tu prendi il DMIN di questi valori
Se uno è in lavorazione e l'altro in evaso il DMIN prende 20 e quindi
l'ordine è in lavorazione.
Quando tutti hanno il 50 il DMIN naturalmente è 50 e quindi evaso
Saluti
G.Franchi

 Grazie, Paolo
Ipotizziamo che la maschera con la quale inserisci i record nella tabella
Carichi, digitandoli dalla bolla di consegna, si chiami Maschera1 e che
contenga un controllo nel quale selezioni o digiti l'IDArticolo che si
chiama Pippo.
Do per scontato che esista una tabella DettaglioOrdini che contiene il
numero dell tuo ordine dal quale puoi risalire (dalla tabella Ordini) anche
alla data ed al fornitore.
Creati una query (Query1) RAGGRUPPATA per NumeroOrdine e IDArticolo nella
quale metti in INNER JOIN la tabella Ordini e la tabella DettaglioOrdini in
base ai campi NumeroOrdine.
Query1 dovrà contenere i campi NumeroOrdine, DataOrdine, IDArticolo,
Fornitore e Quantità (che sarà poi la somma delle quantità ordinate).
Do anche per scontato che i record dei carichi di magazzino contengano anche
IDArticolo e NumeroOrdine (vedremo più avanti come inserito).
Creati ora una query (Query2) RAGGRUPPATA per NumeroOrdine e IDArticolo e
basata sulla tabella Carichi.
Query2 dovrà contenere i campi NumeroOrdine, IDArticolo e Quantità (che poi
altro non è che la somma delle quantità ricevute per quell'IDArticolo e per
quel NumeroOrdine).
Ora crea una query (Query3) in cui metti in INNER JOIN Query1 e Query2 in
base ai campi NumeroOrdine e IDArticolo. Query3 avrà come campi
Query1.NumeroOrdine, Query1.DataOrdine, Query1.IDArticolo, Query1.Fornitore,
Query1.Quantità e Query2.Quantità; inserisci in Query3 anche un campo
calcolato QuantitàDaRicevere: [Query1.Quantità] - [Query2.Quantità] .
Nei criteri del campo calcolato QuantitàDaRicevere scrivi >0.
Nei criteri del campo Query1.IDArticolo scrivi [Forms]![Maschera1]![Pippo].
Così facendo Query3, per l'IDArticolo scelto o digitato in Maschera1 ti
mostrerà solo gli ordini non ancora totalmente evasi.
In Maschera1 inserisci una casella di riepilogo, chiamata Elenco, ASSOCIATA
al campo NumeroOrdine della tabella Carichi, che abbia come colonna
associata la 1 e come origine riga Query3.
A fronte dell'evento "Dopo aggiornamento" del controllo Pippo di Maschera1
genera il seguente codice VBA:
Me!Elenco.Requery
Anche a fronte dell'evento "Dopo inserimento" di Maschera1 genera il
seguente codice VBA:
Me!Elenco.Requery
Così facendo, quando stai operando con Maschera1, dopo aver scelto o
inserito l'IDArticolo in Pippo, nella casella di riepilogo Elenco
compariranno tutti gli ordini inevasi di quell'articolo (che penso
normalmente sarà una sola riga o al massimo 2 o 3): clicca con il mouse la
riga cui l'entrata fa riferimento, basandoti sul fornitore e il tuo numero
d'ordine indicati sulla bolla di consegna.
Per facilitare il lavoro dell'operatore, sarà bene che tu chieda ai
fornitori di indicare sempre sulle bolle di consegna, come riferimento, il
tuo numero e data d'ordine (ma è ormai una consuetudine); chiedi anche ai
fornitori di emettere più buoni di consegna, nel caso che la merce
consegnata faccia riferimento a più di un tuo ordine, in alternativa di
indicare tutti i numeri dei tuoi ordini cui la merce consegnata si
riferisce.
E' più complicato da dire che da fare. ;-)
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:qeHI8.18801$ie.4...@twister2.libero.it...

Grazie Robi,
in effetti stavo pensando a qualcosa del genere, ma mi intoppavo sempre in
qualche punto del ragionamento.
In un thread di molto tempo fa a qualcuno (forse io..) che chiedeva quanto
intelligenti bisognava essere per diventare bravi in Access tu rispondesti
che era più importante la capacità di analisi e di sintesi. Complimenti per
l'una e per l'altra.
Ciao