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
|
Sub enregistrer_bdd()
Dim Tableau_date() As String
Dim Tableau_heure() As String
Dim Tableau_date_heure(5) As String
Dim i As Integer
Dim cn As ADODB.Connection, rs As ADODB.Recordset
Dim sql As String
'Connexion à la BDD Access
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=Mes projets\Feuille de quart\quart.mdb;"
'Open a recordset
Set rs = New ADODB.Recordset
'On ouvre la table Quart
rs.Open "feuilledequart", cn, adOpenKeyset, adLockOptimistic, adCmdTable
'extraire la date de la feuille de quart
Tableau_date() = Split(Range("B8").Value, "/")
'extraire l'heure de la feuille de quart
Tableau_heure() = Split(Range("C8").Value, "_")
'on crée un tableau intermédiaire avec le bon ordre
Tableau_date_heure(0) = Tableau_date(2)
Tableau_date_heure(1) = Tableau_date(1)
Tableau_date_heure(2) = Tableau_date(0)
Tableau_date_heure(3) = Tableau_heure(0)
Tableau_date_heure(4) = Tableau_heure(1)
Set rsselect = New ADODB.Recordset
sql = "SELECT * FROM feuilledequart WHERE date_du_jour = '" & Join(Tableau_date_heure, "") & "'"
rsselect.Open sql, cn, adOpenKeyset, adLockOptimistic
'adLockOptimistic nécessaire ici, sinon le recordset est en lecture seule (par défaut il est en adLockReadOnly)
If rsselect.BOF = True Then 'si l'enregistement en cours est positionné avant le premier de l'objet. ie il n'y a pas d'enregistrement...
rs.AddNew 'Nouvel enregistrement (un par validation de feuille) et on se positionne dessus
'On ajoute à chaque champ de la table les valeurs correspondantes
rs.Fields("date_du_jour") = Join(Tableau_date_heure, "") 'le champ date est créé en une chaine grâce à Join()
rs.Fields("compteur_forage") = Range("F72").Value
rs.Fields("niveau_cuve_fuel_domestique") = Range("C77").Value
rs.Fields("niveau_cuve_fuel_nouvelle_installation") = Range("F77").Value
rs.Fields("compteur_fuel_four1") = Range("F103").Value
rs.Fields("compteur_fuel_four2") = Range("F108").Value
rs.Fields("concordance_mesure_O2_four1") = Range("F119").Value
rs.Fields("concordance_mesure_O2_four2") = Range("F122").Value
rs.Fields("pression_vapeur_NH4OH_four1") = Range("F126").Value
rs.Fields("pression_vapeur_NH4OH_four2") = Range("F129").Value
rs.Fields("niveau_bac_grenaille_four1") = Range("F135").Value
rs.Fields("niveau_bac_grenaille_four2") = Range("G135").Value
rs.Fields("nombre_sacs_injectes_four1") = Range("F136").Value
rs.Fields("nombre_sacs_injectes_four2") = Range("G136").Value
rs.Fields("niveau_bac_phosphate") = Range("E144").Value
rs.Fields("niveau_acide") = Range("G161").Value
rs.Fields("niveau_soude") = Range("G162").Value
rs.Fields("eau_de_ville") = Range("G167").Value
rs.Fields("eau_de_forage") = Range("G168").Value
rs.Fields("cumul_eau_deminee_vers_bache_alimentaire") = Range("G237").Value
rs.Fields("niveau_reduc_O2_index_pompe") = Range("G242").Value
rs.Fields("niveau_amines_index_pompe") = Range("G243").Value
rs.Update 'On enregistre !
Else
rsselect.Fields("date_du_jour") = Join(Tableau_date_heure, "") 'le champ date est créé en une chaine grâce à Join()
rsselect.Fields("compteur_forage") = Range("F72").Value
rsselect.Fields("niveau_cuve_fuel_domestique") = Range("C77").Value
rsselect.Fields("niveau_cuve_fuel_nouvelle_installation") = Range("F77").Value
rsselect.Fields("compteur_fuel_four1") = Range("F103").Value
rsselect.Fields("compteur_fuel_four2") = Range("F108").Value
rsselect.Fields("concordance_mesure_O2_four1") = Range("F119").Value
rsselect.Fields("concordance_mesure_O2_four2") = Range("F122").Value
rsselect.Fields("pression_vapeur_NH4OH_four1") = Range("F126").Value
rsselect.Fields("pression_vapeur_NH4OH_four2") = Range("F129").Value
rsselect.Fields("niveau_bac_grenaille_four1") = Range("F135").Value
rsselect.Fields("niveau_bac_grenaille_four2") = Range("G135").Value
rsselect.Fields("nombre_sacs_injectes_four1") = Range("F136").Value
rsselect.Fields("nombre_sacs_injectes_four2") = Range("G136").Value
rsselect.Fields("niveau_bac_phosphate") = Range("E144").Value
rsselect.Fields("niveau_acide") = Range("G161").Value
rsselect.Fields("niveau_soude") = Range("G162").Value
rsselect.Fields("eau_de_ville") = Range("G167").Value
rsselect.Fields("eau_de_forage") = Range("G168").Value
rsselect.Fields("cumul_eau_deminee_vers_bache_alimentaire") = Range("G237").Value
rsselect.Fields("niveau_reduc_O2_index_pompe") = Range("G242").Value
rsselect.Fields("niveau_amines_index_pompe") = Range("G243").Value
rsselect.Update 'On enregistre !
End If
'On ferme le RecordSet
rs.Close
Set rs = Nothing
'On ferme la connexion à la base
cn.Close
Set cn = Nothing
End Sub |
Partager