PREMESSA:
Anche se probabilmente questa risposta sarà incomprensibile a molti utenti perchè solo io ho avuto la possibilità di
visionare il DB tramite messaggio privato, ho deciso di postare ugualmente nel caso in cui a qualcuno possa risultare
di aiuto (Non si sa mai)
----------------------------------------
RISPOSTA:
Se il tuo problema consiste nella creazione di una query che visualizzi la situazione aggiornata dei dati Impegnati - Scarico non c'è problema,
ti illustro come puoi fare.Se invece vuoi aggiornare direttamente i dati della tabella Impegnati allora la cosa è più complessa.
Dico che la cosa è più complessa perchè attualmente nella tabella Impegnati possono essere presenti più record per lo stesso
codice prodotto (con valori di Qt diversi) e quindi dovresti creare una procedura che vada ad eliminare i record in questa tabella (In modo che il totale delle Qt dei record rimanenti coincida con la differenza tra Impeganto e Scarico) e
credo proprio (Praticamente certo) che questa cosa non si possa fare direttamente in access(Ma devi farla via Codice VB) perchè il DB "a mio avviso" non è strato progettato in maniera "ottimale".
* Comunque se il tuo problema è creare una query, queste sono le operazioni da fare:
1) Siccome i record della tabella scarico possono essere molteplici per ogni codice prodotto, la prima cosa da fare è creare una query
che conteggi la somma dei record per codice articolo(In questo modo ottieni la quantità da scaricare).Chiamerò questa query 'qry_totScarico'
[qryTotScarico]
SELECT cod_articolo, COUNT(cod_articolo) AS QtScarico
FROM scarico
GROUP BY cod_articolo
2) Una volta che hai creato la query che visualizza i totali scaricati (x articolo), semplicemente crei una nuova query (che chiamerò 'qryQtAggiornate') utilizzando
la query 'qryTotScarico' e la query IMPEGNATI'.La query che "comanda" è quella degli impegnati, che sarà collegata con un LEFT JOIN a quella dello Scarico.
Con una semplice sottrazione calcoli quindi la QT impegnata dopo lo scarico.
[qryQtAggiornate]
SELECT Impegnati.cod_articolo, Impegnati.Quantità AS Qtimpegnato, qry_TotScarico.QtScarico, (Impegnati.Quantità-nz(qry_TotScarico.QtScarico,0)) AS QtAggiornata
FROM Impegnati LEFT JOIN qry_TotScarico ON Impegnati.cod_articolo = qry_TotScarico.cod_articolo;
* Se il tuo problema invece è aggiornare direttamente la tabella impegnato, fammi sapere, che proverò a darti una mano.
Ciao!