Ciao
ho due tabelle, una di nome Ordini e una di nome Contratti. Le due tabelle sono in relazione fra loro.
A queste due tabelle sono collegate le maschere Inserimento Ordini e Inserimento Contratti.
Nella tabella Contratti ci sono i dati relativi ad ogni contratto [Numero Contratto] , [Importo del contratto] e [Residuo].
Nella tabella Ordini fra altri dati ci sono i dati relativi al [tipo documento] (che può essere un ordine o un contratto) [numero contratto] e [l’importo] che per un singolo acquisto sto spendendo.
Sto cercando di scrivere la seguente istruzione senza successo:
Se nel campo [Tipo documento] della maschera Inserimento Ordini c’è scritto “Contratto” allora controlla se il valore del campo [Importo] della solita maschera è maggiore del campo [Residuo] della tabella Contratti nel record del numero contratto uguale al valore inserito nel campo [numero contratto] della maschera Inserimento ordini . Se è maggiore dimmi che i soldi sono finiti. Poi aggiornami il residuo nella tabella
Esempio in 4 passaggi
Tabella Contratti (1)
n.contratto.......residuo
1...................1000
2...................2000
3...................3000
Maschera Inserimento Ordini (2)
n.contratto......importo
3...................500
Tabella Contratti (3)
n.contratto......residuo
1...................1000
2...................2000
3...................2500
Maschera Inserimento Ordini (4)
n.contratto.....importo
3..................2600
Attenzione i soldi sono finiti.
E' la prima volta che scrivo il codice e non sono riuscito a fare meglio:
Private Sub Form_AfterUpdate()
SELECT N_Contratto, Importo, Residuo FROM Contratti WHERE N_Contratto = Form_Inserimento_ordini.Importo;"
If [Tipo_documento] = "Contratto" Then
If Form_Inserimento_ordini.Importo >= 'non so cosa scrivere perchè qualsiasi cosa metto mi da errore' Then
MsgBox " ATTENZIONE BUDGET FINITO", vbOKOnly + vbCritical, "Budget"
DoCmd.OpenQuery "Q_Residuo", acViewNormal, acEdit
End If
End If
End Sub
(nella Query Q_Residuo c'è UPDATE Contratti SET Contratti.Residuo = [Residuo]-[Forms]![Inserimento_ordini]![Importo]
WHERE (((Contratti.N_contratto)=[Inserire numero contratto]));
'questa query mi parte solo se si verifica IF, quindi devo studiare qualcosa di meglio anche perchè gli devo dare io il numero contratto e vorrei che lo prenda in automatico dal campo [numero contratto] della maschera'
Se mi date un suggerimento sono ben contento di leggerlo..anche perchè mi sono appassionato e vorrei vederlo funzionare. Grazie