Condividi tramite

Aggiornare lo scarico di magazzino da una determinata data in poi.

Anonimo
2020-10-31T17:59:44+00:00

Buona sera a tutti.

Ho la seguente situazione:

Ho la seguente query che mi aggiorna il magazzino in base al codice del capo che scarico e fin qui tutto bene.

Poichè ho aggiornato la quantità di alcuni capi , desidererei con il vostro aiuto, poter modificare la query affinchè mi scarichi i capi di vestiario da un determinata data in poi, non tenendo conto dei capi già scaricati precedentemente.

UPDATE tblProdotti, tblFatture SET tblProdotti.Giacenza = Nz([tblProdotti].[Quantità])-Nz([tblProdotti].[Giacenza])

WHERE (((tblProdotti.Id_Prodotto)=[tblProdotti].[Id_Prodotto]) AND ((tblProdotti.Quantità) Is Not Null) AND ((tblFatture.DataPagamento)>=[tblProdotti].[Data_Aggiornamento]));

Spero di essere stato chiaro.

P.S. ho pensato di aggiungere il campo Data_Aggiornamento per ottenere quanto chiedo a voi esperti, ma non va come desidero, modificando la query originale :

UPDATE tblProdotti, tblFatture SET tblProdotti.Giacenza = Nz([tblProdotti].[Quantità])-Nz([tblProdotti].[Giacenza])

WHERE (((tblProdotti.Id_Prodotto)=[tblProdotti].[Id_Prodotto]) AND ((tblProdotti.Quantità) Is Not Null));

Mi aiutate voi per favore.

Ciao Nicola.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2020-11-02T14:17:36+00:00

Ciao Nicola,

forse possiamo risolvere con due query in cascata, la prima mi estrae gli scarichi da effettuare in una tabella la seconda effettua l'aggiornamento.

La prima query l'ho chiamata qryScarico ed è la seguente:

SELECT tblProdotti.CodiceProdotto, Sum(([tblRigheFattura].[Quantità])) AS Scarico INTO tblScarico

FROM tblFatture INNER JOIN (tblProdotti INNER JOIN tblRigheFattura ON tblProdotti.CodiceProdotto = tblRigheFattura.CodiceProdotto) ON tblFatture.ID_Fattura = tblRigheFattura.ID_Fattura

WHERE (((tblRigheFattura.Movimento)="U") AND ((tblRigheFattura.Scaricato)="NO") AND ((tblFatture.DataPagamento)>=#4/25/2020#))

GROUP BY tblProdotti.CodiceProdotto;

La seconda è la seguente:

UPDATE tblProdotti INNER JOIN tblScarico ON tblProdotti.CodiceProdotto = tblScarico.CodiceProdotto SET tblProdotti.Quantità = [tblProdotti].[Quantità]-[tblScarico].[Scarico];

E' quasi un anno che sono in pensione ed inizio a dimenticare tutto!!!

Facci sapere

Ciao Mimmo

La risposta è stata utile?

0 commenti Nessun commento

12 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2020-10-31T18:51:06+00:00

    Nel primo post tu avevi

     ((tblFatture.DataPagamento)>=[tblProdotti].[Data_Aggiornamento]));

    e forse era da cambiare in

     ((tblFatture.DataPagamento)>=#[tblProdotti].[Data_Aggiornamento]#));

    nel nuovo post tu hai

    And ((tblFatture.DataPagamento)>=Date()));

    che ritengo sia corretto

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2020-10-31T18:47:01+00:00

    Ciao Mimmo, sto continunado con i test, qualcosa è da modificare con la query che ho modificato poichè mi azzera completamente la colonna giacenza, come potrai notare dall'immagine allegata.

    Mi chiede la data e poi mi aggiorna tutto alla data che inserisco.

    Non so come fare.

    Ciao Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2020-10-31T18:25:48+00:00

    Ciao Mimmo, grazie per il tuo gentile riscontro.

    Poichè la maschera ( che funge da bolletta di consegna dei capi di vestiario si basa sulle tabelle:

    tblFatture e tblRighefattura, ho pensato di modificare la query in questo modo:

    UPDATE tblProdotti, tblFatture SET tblProdotti.Giacenza = Nz([tblProdotti].[Quantità])-Nz([tblProdotti].[Giacenza])

    WHERE (((tblProdotti.Id_Prodotto)=tblProdotti.Id_Prodotto) And ((tblProdotti.Quantità) Is Not Null) And ((tblFatture.DataPagamento)>=Date()));

    Ho fatto questo ragionamento, facendo agire la query sulla data che inserisco nel campo della tabella tblFatture ( chiamato DataPagamento) che non è mai antecedente alla data odierna, ma non va ancora.

    Ho fatto come tu mi consigli ( sperando di aver fatto bene) ma ottengo questo messaggio di errore:

    Ciao Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2020-10-31T18:08:22+00:00

    Ciao,

    forse ti basta racchiudere [tblProdotti].[Data_Aggiornamento] tra     #[tblProdotti].[Data_Aggiornamento]#

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento