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 98 99 100 101 102 103 104 105 106 107
| Private Sub btnValider_Click()
'Enregistre la commande dans l'historique et modifie dans la table outillage la disponibilité et la tranche, ainsi que la référence du groupement
Dim db As DAO.Database
Dim rst As DAO.Recordset 'recordset permettant de parcourir les lignes du formulaire
Dim rst2 As DAO.Recordset 'Recordset allant chercher l'enregistrement correspondant dans la table historique
Dim rst3 As DAO.Recordset 'Recordset ouvrant la table outillage pour effectuer les modifications nécessaires dessus
Dim i As Integer
Set rst = Me.Recordset
Set db = CurrentDb()
'Tant que l'on est pas à la fin du formulaire
While Not rst.EOF
Set rst3 = db.OpenRecordset("SELECT DetailCommandeC.Group_Outil FROM DetailCommandeC WHERE DetailCommandeC.RefCommande = " & Forms![frmCreationModifChantier].Form.Controls("txtRefCommande").Value & _
" AND DetailCommandeC.RefGroupement = '" & Me.txtType.Value & "' ;")
If rst3.EOF Then
'Ouvre la table historique en cherchant l'enregistrement correspondant à la commande
Set rst2 = db.OpenRecordset("SELECT * FROM Historique WHERE Historique.RefCommande = " & Forms![frmCreationModifChantier].Form.Controls("txtRefCommande").Value & _
" AND Historique.refGroupement = '" & Forms![frmCreationModifChantier]![ssfrmDetailCommandeC].Form.Controls("cmbRefGroupement").Value & _
"' AND Historique.refOutillage = '" & Me.cmbRepereOutil.Value & "' AND Historique.Operation = 'Commande Chantier';")
Else
Set rst2 = db.OpenRecordset("SELECT * FROM Historique WHERE Historique.RefCommande = " & Forms![frmCreationModifChantier].Form.Controls("txtRefCommande").Value & _
" AND Historique.refGroupement = ' '" & _
" AND Historique.refOutillage = '" & Me.cmbRepereOutil.Value & "' AND Historique.Operation = 'Commande Chantier';")
End If
rst3.Close
Set rst3 = Nothing
'Si on trouve un enregistrement, alors on le modifie
If Not rst2.EOF Then
rst2.Edit
rst2("DateDepart") = Forms![frmCreationModifChantier].Form.Controls("txtDateDebut").Value
rst2("DateRetour") = Forms![frmCreationModifChantier].Form.Controls("txtDateFin").Value
rst2("RefResp") = Forms![frmCreationModifChantier].Form.Controls("cmbChargeAffaire").Value
rst2("operation") = "Commande Chantier"
'Si on ne trouve pas d'enregistrement, alors il ne s'agit pas d'une modification mais d'une création de commande
ElseIf rst2.EOF Then
rst2.AddNew
rst2("refCommande") = Forms![frmCreationModifChantier].Form.Controls("txtrefCommande").Value
rst2("NDetailCommandeC") = Forms![frmCreationModifChantier]![ssfrmDetailCommandeC].Form.Controls("txtNumAuto")
If Forms![frmCreationModifChantier]![ssfrmDetailCommandeC].Form.Controls("cmbGroup_Outil") = "Outillage" Then
rst2("RefGroupement").Value = ""
Else
rst2("Refgroupement").Value = Forms![frmCreationModifChantier]![ssfrmDetailCommandeC].Form.Controls("cmbrefgroupement").Value
End If
rst2("refOutillage") = Me.cmbRepereOutil.Value
rst2("DateDepart") = Forms![frmCreationModifChantier].Form.Controls("txtDateDebut").Value
rst2("DateRetour") = Forms![frmCreationModifChantier].Form.Controls("txtDateFin").Value
rst2("RefResp") = Forms![frmCreationModifChantier].Form.Controls("cmbChargeAffaire").Value
rst2("operation") = "Commande Chantier"
End If
'On modifie l'enregistrement dans la table outillage aussi
Set rst3 = db.OpenRecordset("SELECT * FROM Outillage WHERE Outillage.RepereOutil = '" & rst("cmbRepereOutil").Value & "' ;")
rst3.Edit
rst3("Disponibilite") = 0
rst3("tranche") = Forms![frmCreationModifChantier].Form.Controls("cmbTranche").Value
rst3("RefGroupement").Value = rst2("refGroupement").Value
rst3("refResponsable") = rst2("refResp").Value
rst3.Update
'libération des objets
rst2.Update
rst3.Close
Set rst3 = Nothing
'Libération des objets
rst2.Close
Set rst2 = Nothing
rst.MoveNext 'Ligne ou l'erreur survient
Wend
'Libération des objets
db.Close
Set db = Nothing
End Sub |
Partager