Modifica Record della tabella correlata

di
Anonimizzato9967
il
2 risposte

Modifica Record della tabella correlata

Salve a tutti, sono un neofita di questo programma e mi sto approcciando per la prima volta ad esso con un piccolo progettino che vorrei portare a termine.
Senza dilungarmi nelle specifiche, vi spiego la mia situazione e la mia struttura del database.

Attualmente il mio data base è formato da due tabelle:

tabella1="fattura"

[in questa tabella, sono racchiuse tutte le fatture di vendita che andrò ad operare.Nota bene: i nomi prodotto sono uguali ad un solo elemento presente nella tabella magazzino (ho impostato una ricerca guidata)]
I campi importanti di questa tabella, sono

-"Nome prodotto1"
-"Quantità venduta prodotto1"
-"Nome prodotto2"
-"Quantità vendutaprodotto2"
-"Nome prodotto3"
-"Quantità venduta prodotto3"

tabella2="Magazzino"

[in questa tabella, tengo conto della giacenza dei vari prodotto]
I campi di interesse sono

-"Nome prodotto"
-"Giacenza".


Arrivo al punto. Vorrei fare in modo che, quando si va a registrare una fattura ( e quindi ad inserire nella tabella "Fattura" tutti i dati, compresi Nome "Prodotto X" e "Quantità venduta X") la quantità venduta venga decurtata dalla giacenza della tabella "Magazzino" relativa a al prodotto selezionato nella fattura.
Ci sto sbattendo la testa e perdendo tempo ma proprio non ci riesco spero che voi esperti mi sappiate aiutare.
Cordialmente vi ringrazio per il tempo che mi dedicherete.
Aspetto al vostra .D

2 Risposte

  • Re: Modifica Record della tabella correlata

    Up ragazzi vi prego
  • Re: Modifica Record della tabella correlata

    Mi sono appena iscritto al forum e non sono un esperto, ma vediamo se riesco a darTi una risposta.

    Consideriamo di voler aggiornare, nella tabella “Materiali acquisto”, la giacenza di magazzino [Giac] del materiale [Codice_Prodotto] dopo la spedizione del materiale [Cod_materiale_1] in quantità [Qtà_1] presente nella tabella “Fatturazione” alla Posizione 1.

    Preventivamente:
    1) è necessario definire, in un modulo, le variabili.

    Nel modulo … “chiamalo come vuoi”.
    Public Cod_materiale As String, Ok As String
    Public Gia As Integer

    2) nella maschera della tabella "Materiali acquisto" scrivere una routine associata a “Evento - Su attivato”

    Private Sub Codice_Prodotto_GotFocus()
    On Error GoTo 10
    If Ok = "Si" Then [Giac] = ([Giac] - Gia) ' Aggiorna giacenza
    10:
    End Sub
    Nella maschera della tabella “Fatturazione” scrivere una routine associata a “Evento - Dopo aggiornamento”

    Private Sub Qtà_1_AfterUpdate()
    On Error GoTo 10
    Ok = "Si"
    Gia = [Qtà_1] ' Quantità in fattura alla posizione "1"
    Cod_materiale = [Cod_materiale_1] ' Codice materiale

    Application.Echo False
    DoCmd.OpenForm "Materiali acquisto" ' Apre la maschera "Materiali acquisto"
    DoCmd.FindRecord Cod_materiale, , True, , True 'Seleziona il record indicato
    DoCmd.Close acForm, "Materiali acquisto", acSavePrompt ' Chiude la maschera
    Application.Echo True
    Ok = "No"
    10:
    End Sub

    Sicuramente ci sarà una soluzioni più ortodossa ma, per ora, ho trovato questa procedura e , mi pare, funzioni; è necessario però che il valore della quantità da scaricare non sia mai un Null altrimenti si genera confusione.

    Spero di essere stato abbastanza esaustivo.

    Cordiali saluti e buon lavoro.

    A disposizione.

    Giuseppe Guernieri
Devi accedere o registrarti per scrivere nel forum
2 risposte