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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
| Private Sub enregistrer_Click()
' Declaration pour les differentes base de donnees soit (Forage, Sautage et Notes)
Dim db_forage As DAO.Database
Dim db_sautage As DAO.Database
Dim db_notes As DAO.Database
Dim db_polygones As DAO.Database
' Declaration des requetes pour chacune des base de donnees
Dim rs_Forage As DAO.Recordset
Dim rs_Sautage As DAO.Recordset
Dim rs_Notes As DAO.Recordset
Dim rs_polygone As DAO.Recordset
' Declaration de variable utiles
Dim bool_Forage As Boolean
' Ici on verifie si on a assez de donnee pour ajouter une entre de dans le forage
If (Not IsNull(L_plannifier) And Not IsNull(L_foree)) Then
bool_Forage = True
End If
Dim bool_Sautage As Boolean
' Ici on verifie si on a assez de donnee pour ajouter une entre de dans le sautage
If (Not IsNull(Nb_Amorce) Or Not IsNull(L_av_gazing) Or Not IsNull(L_ap_gazing) Or Not IsNull(L_bourrage)) Then
MsgBox "sautage true"
bool_Sautage = True
End If
Dim bool_Notes As Boolean
' Ici on verifie si on a assez de donnee pour ajouter une entre de dans les notes
If (Type_recouvrement = Not Empty Or Notes_A = Not False Or Notes_B = Not False Or Notes_C = Not False Or Notes_D = Not False Or Notes_E = Not False Or Notes_F = Not False Or Notes_G = Not False Or Notes_H = Not False Or Notes_I = Not False Or Notes_J = Not False Or Notes_K = Not False Or Notes_L = Not False Or Notes_M = Not False Or Notes_N = Not False Or Notes_O = Not False Or Notes_P = Not False Or Notes_Q = Not False Or Notes_R = Not False) Then
bool_Notes = True
End If
Dim temp_No_Sautage As String
Dim temp_Date_approx As String
Set db = CurrentDb
' Ouvrir les tables de donnees pour integrer les donnees
Set db_forage = db.OpenRecordset("SELECT * FROM Table_Forage WHERE No_Sautage = '" & Me.No_Sautage & "'", dbOpenDynaset)
Set db_sautage = db.OpenRecordset("SELECT * FROM Table_Sautage WHERE No_Sautage = '" & Me.No_Sautage & "'", dbOpenDynaset)
Set db_notes = db.OpenRecordset("SELECT * FROM Table_Notes WHERE No_Sautage = '" & Me.No_Sautage & "'", dbOpenDynaset)
Set db_polygone = db.OpenRecordset("Table_des_polygones", dbOpenDynaset)
' Premiere verification: voir si le numero de sautage et la date sont la, on veut pas de base de donnee fuck up!!
If (Not IsEmpty(Me![No_Sautage]) And Not IsEmpty(Me![Date_approx])) Then
MsgBox "In premier If"
' Si le numero de sautage existe et que la date existe aussi
' Alors j'attribue ces deux valeur a deux variables temporaires pour les remetres dans les case apres avoir vide tous les champs.
temp_No_Sautage = Me![No_Sautage]
temp_Date_approx = Me![Date_approx]
' Si le polygone de forage n'existe pas deja on l'ajoute à la base de donnee
rs_polygone.FindFirst "[No_Sautage] = '" & Me.No_Sautage & "'"
If rs_polygone.NoMatch Then
With rs_polygone
.AddNew
![No_Sautage] = Me.No_Sautage
![Date_approx] = Me.Date_approx
.Update
.Close
End With
End If
' On vide la requete
Set rs_polygone = Nothing
' Verifier si les entre importante existe.
' Pour eviter les entrees vide et s'assure des meilleurs resultats statistiques.
If (Not IsNull(No_Trou) And ((bool_Forage = True) Or (bool_Sautage = True) Or (bool_Notes = True))) Then
MsgBox "In Add if"
' Premier check up: Le Forage
' Recherche si l'entre existe deja
rs_Forage.FindFirst "[No_Trou] = '" & Me.No_Trou & "'"
' Ici, je m'assure qu'il y ait au moins un des champs avec une valeurs pour eviter les entrees vide dans la base de donnees.
If (rs_Forage.NoMatch And bool_Forage = True) Then
With rs_Forage
.AddNew
![No_Sautage] = Me.No_Sautage
![No_Trou] = Me.No_Trou
![L_plannifier] = Me.L_plannifier
![L_foree] = Me.L_foree
![conf_L_foree] = Me.conf_L_foree
![reforage_demander] = Me.reforage_demander
![L_ajuste] = Me.L_ajuste
![conf_L_ajuste] = Me.conf_L_ajuste
.Update
.Close
End With
Else
MsgBox "[Forage] l'entre existe deja"
End If
Set rs_Forage = Nothing
' Entrer les donnees dans la base de donnees de sautage
' Recherche si l'entre existe deja
rs_Sautage.FindFirst "[No_Trou] = '" & Me.No_Trou & "'"
' Ici, je m'assure qu'il y ait au moins un des champs avec une valeurs pour eviter les entrees vide dans la base de donnees.
If (rs_Sautage.NoMatch And bool_Forage = True) Then
With rs_Sautage
.AddNew
![No_Sautage] = Me.No_Sautage
![No_Trou] = Me.No_Trou
![Nb_Amorce] = Me.Nb_Amorce
![conf_Pos_Amorce] = Me.conf_Pos_Amorce
![L_av_gazing] = Me.L_av_gazing
![L_ap_gazing] = Me.L_ap_gazing
![conf_granulo] = Me.conf_granulo
![L_bourrage] = Me.L_bourrage
![conf_L_bourrage] = Me.conf_L_bourrage
.Update
.Close
End With
Else
MsgBox "[Sautage] l'entre existe deja"
End If
' Entrer les donnees dans la base de donnees des de notes
' Recherche si l'entre existe deja
rs_Notes.FindFirst "[No_Trou] = '" & Me.No_Trou & "'"
' Ici, je m'assure qu'il y ait au moins un des champs avec une valeurs pour eviter les entrees vide dans la base de donnees.
If (rs_Notes.NoMatch And bool_Notes = True) Then
With rs_Notes
.AddNew
![No_Sautage] = Me.No_Sautage
![No_Trou] = Me.No_Trou
![Type_recouvrement] = Me.Type_recouvrement
![conf_recouvrement] = Me.conf_recouvrement
![Notes_A] = Me.Notes_A
![Notes_B] = Me.Notes_B
![Notes_C] = Me.Notes_C
![Notes_D] = Me.Notes_D
![Notes_E] = Me.Notes_E
![Notes_F] = Me.Notes_F
![Notes_G] = Me.Notes_G
![Notes_K] = Me.Notes_K
![Notes_L] = Me.Notes_L
![Notes_M] = Me.Notes_M
![Notes_N] = Me.Notes_N
![Notes_O] = Me.Notes_O
![Notes_P] = Me.Notes_P
![Notes_Q] = Me.Notes_Q
![Notes_R] = Me.Notes_R
.Update
.Close
End With
Else
MsgBox "[Notes] l'entre existe deja"
End If
Set rs_Notes = Nothing
End If
Else
' On avertit l'utilisateur qu'il y a un probleme.
MsgBox "Complete le numero de sautage ET la date du début de forage!"
End If
' Remettre les champs vide
Dim X As Control
For Each X In Me.Controls
If TypeOf X Is TextBox Or TypeOf X Is ComboBox Or TypeOf X Is CheckBox Then
X = Null
End If
Next X
Me.No_Sautage = temp_No_Sautage
Me.Date_approx = temp_Date_approx
End Sub |
Partager