1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| Private Sub bt_insert_Click()
Dim code_conso As String
Dim ref_outil As String
Dim nuance As String
Dim ref_machine As String
Dim qte As Integer
Dim prixFinal As Double
Dim sDate As Date
Dim test_stock As Long
Dim test_mini As Long
Dim req As String
Dim req_insert As String
Dim req_update As String
Dim bdd As Database
Dim rs As Recordset
Dim rs_insert As DAO.Recordset
Dim rs_update As DAO.Recordset
Dim dbs As Database
On Error GoTo Err_bt_insert_Click
'Vérification pour éviter le NULL
If ((IsNull(Me.qte)) Or (IsNull(Me.ref_outil)) Or (IsNull(Me.nuance)) Or (IsNull(Me.ref_machine))) Then
MsgBox "Veuillez remplir tout les champs."
Exit Sub
Else
'Test pour assurer un calcul du prix final
If (IsNull(Me.txt_prixFinal)) Then
MsgBox "Veuillez calculer le prix final."
Exit Sub
Else
'Affection des valeurs aux variables
'(code_conso est auto-incrémenté)
code_conso = Me.code_conso.Value
ref_outil = Me.ref_outil.Value
nuance = Me.nuance.Value
ref_machine = Me.ref_machine.Value
qte = Me.qte.Value
prixFinal = Me.txt_prixFinal.Value
sDate = Me.sDate.Value
'Récupération des données de stock de la table OUTILS
req = "SELECT qte_stock, stockMini "
req = req & "FROM OUTILS "
req = req & "WHERE ref_outil = '" & ref_outil & "' "
req = req & "AND nuance = '" & nuance & "';"
Set bdd = CurrentDb
Set rs = bdd.OpenRecordset(req)
'Affection des valeurs aux variables
test_mini = rs!stockMini
test_stock = rs!qte_stock
'Test pour ne pas avoir un stock negatif
If (0 > (test_stock - qte)) Then
MsgBox "Opération impossible, vous n'avez plus assez de stock!", vbOKOnly
Exit Sub
Else
'Test pour prévenir l'user que le stock descend sous son seuil minimal
If (test_mini > (test_stock - qte)) Then
If (MsgBox("Attention vous depassez le seuil de stock minimal! Voulez-vous continuer?", vbYesCancel) = vbCancel) Then
Exit Sub
End If
Else
'Requêtes SQL
req_insert = "INSERT INTO CONSOMMATION (code_conso, ref_outil, nuance, ref_machine, qte, prixFinal, sDate) "
req_insert = req_insert & "VALUES ('" & code_conso & "', '" & ref_outil & "', '" & nuance & "', '" & ref_machine & "', " & qte & ", " & prixFinal & ", #" & sDate & "#);"
req_update = "UPDATE OUTILS "
req_update = req_update & "SET qte_stock = qte_stock - " & qte & " "
req_update = req_update & "WHERE ref_outil = '" & ref_outil & "' "
req_update = req_update & "AND nuance = '" & nuance & "';"
'Initialisation et ouverture de la BDD
Set dbs = CurrentDb
dbs.Execute req_insert, dbFailOnError
dbs.Execute req_update, dbFailOnError
'Rachaîchissement de la liste qui affiche la table CONSOMMATION
Me.lst_conso.Requery
'Activation du prochain enregistrement
DoCmd.GoToRecord , , acNewRec
End If
End If
End If
End If
Exit_bt_insert_Click:
Exit Sub
Err_bt_insert_Click:
MsgBox Err.description
Resume Exit_bt_insert_Click
End Sub |
Partager