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