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
   | Sub WritingWorksheetData_DAO()
 
  Dim Plage As Range
  Dim Array1 As Variant
  Dim x As Variant
  Dim Db1 As Database
  Dim Rs1 As Recordset
 
  ' Ouverture de la base de données Commandes.mdb
  Set Db1 = DBEngine.OpenDatabase(ThisWorkbook.Path & "\BDD Qualité.mdb")
 
  ' Ouverture de la table Factures
  ' Un objet Recordset représente les enregistrements d'une table
  Set Rs1 = Db1.OpenRecordset("produits", dbOpenDynaset)
 
  ' Détermination de la taille de la plage à envoyer vers Access
  Set Plage = Worksheets("DAOSheet").Range("A1").CurrentRegion.Offset(1, 0)
  Set Plage = Plage.Resize(Plage.Rows.Count - 1, Plage.Columns.Count)
  Plage.Select
 
  ' Lecture de la plage pour renvoyer une valeur contenant un tableau
  Array1 = Plage.Value
 
  ' Ecriture des données depuis Excel vers les enregistrement de la table Factures
  For x = 1 To UBound(Array1, 1)
    With Rs1
      .AddNew
      .Fields("sap") = Array1(x, 1)
      .Fields("name") = Array1(x, 2)
      .Fields("surname") = Array1(x, 3)
      .Update
    End With
  Next
 
  ' Fermeture de la base Commandes.mdb
  Db1.Close
 
  ' Effacement des données copiées vers la base (sauf les titres)
  With Selection.CurrentRegion
    Intersect(.Cells, .Offset(1)).Select
  End With
  Selection.ClearContents
 
End Sub | 
Partager