Exporter feuille excel vers BdD Access

Résolu
dianedg Messages postés 23 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaite créer une macro VBA (Excel 2013) qui me permette de:
- sélectionner un fichier xlsx comportant 1 feuille. Celle-ci contient des données dans 4 colonnes(ColA, ColB, ColC, ColD)
- exporter les données des 4 colonnes vers une base de données Access dans une pré-définie (TableDefinie) dont les champs sont identiques aux noms des colonnes (ColA, ColB, ColC, ColD)

Je souhaite automatiser cette exportation vers la Base de données car les fichiers excel (toujours le même format) sont générés régulièrement et devront être importés dans la même table à la suite des derniers enregistrements.

Est-ce que je peux travailler avec un fichier excel dont la feuille est protégée?

Pour la partie connexion avec la BdD, j'ai essayé le code suivant mais j'ai toujours l'erreur 3709 qui apparaît (même après lecture de nombreux forum).

Les options suivantes sont cochées dans les préférences:


Quelqu'un peut m'aider?
Merci d'avance,
Diane

Sub ExcelToAccess()
    ' exports data from the active worksheet to a table in an Access database this procedure must be edited before use
    Dim cn As ADODB.Connection, rs As New ADODB.Recordset
          
    ' connect to the Access database
    Set cn = New ADODB.Connection
    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\ddgouvion\Desktop\FluidX ID - RBC\Tracability racks and vials.mdb;;Extended Properties=""Excel 8.0;HDR=No;"";"
    cn.Open
    
    ' open a recordset
    Set rs = New ADODB.Recordset
    rs.Open "Batch to Vial fake", cn, adOpenKeyset, adLockOptimistic, adCmdTable

End Sub



2 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    0
    1. dianedg Messages postés 23 Statut Membre 1
       
      Merci Michel, j'ai déjà lu ce tuto. Est-ce que ça s'applique pour travailler à partir d'un fichier excel et exporter les données vers une BdD Access?
      J'ai oublié de préciser que je travaille sous 64-bit.
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      OUI
      mais ton script de connxion est diffétent de celui du tutp

      Un Viel exemple sur Office 2000: code qui enregistre les données d'une facture dans Access
      Sub archiver_Access()
      Dim conn As Object
      Dim requete As Object
      Dim f_num As Long, f_date As Date, c_num As String, e_date As Date, totalHT As Double
      Dim base_ac As String, fichier As String, texte_SQL As String

      'collecte les infos de la facture
      f_num = Range("A14")
      f_date = Range("A16")
      c_num = CStr(Range("C16"))
      e_date = Range("H16")
      totalHT = Range("F43")

      'connexion à la base dans fichier archives.xls
      base_ac = "Suivi_affaire.mdb" 'a adapter
      fichier = ThisWorkbook.Path & "\" & base_ac 'a adapter
      Set conn = CreateObject("ADODB.Connection")
      conn.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
      "data source=" & fichier & ";"

      ' travail demandé: insère dans les champs de "T_archive les données collectées
      texte_SQL = "INSERT INTO T_archive (num_fact,dat_fact,num_comm,echeance,montant_HT) VALUES ('" & (f_num) & "','" & (f_date) & "', '" & (c_num) & "','" & (e_date) & "', '" & (totalHT) & "')"
      ' éxécute le travail demandé
      Set requete = CreateObject("ADODB.recordset")
      On Error GoTo alerte 'cas où la facture (numéro) a déjà été enregistrée
      Set requete = conn.Execute(texte_SQL)
      .
      'déroulement normal
      MsgBox "archivage de la facture n° " & f_num & " effectué avec succès"
      Set requete = Nothing
      Set conn = Nothing
      Exit Sub

      ' facture déjà enregistrée
      alerte:
      MsgBox "la facture n° " & f_num & " a déjà été enregistrée!", vbCritical
      Set requete = Nothing
      Set conn = Nothing
      End Sub

      0
  2. dianedg Messages postés 23 Statut Membre 1
     
    J'ai trouvé un tuto super bien qui explique comment importer des feuilles excel dans access (avec macro lancée depuis Access): https://grenier.self-access.com/access/fichiers/mise-a-jour-d-une-base-access-par-fichier-csv-ou-excel-episode-4/
    (voir les épisodes 1,2 et 3 pour toutes les étapes)

    Par contre, je suis toujours à la recherche de comment lancer la "macro d'importation" (toute la bidouille du site grenier self access) depuis un classeur excel (celui-ci réunit tout le traitement des fichiers, de leur création à leur importation dans Access, j'aimerais tout faire en un clic).
    (Je travaille sous excel 2013)

    Merci
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour,

      Hervé Inisian est un 1 des meilleurs MVP access.

      Pour ma part, je continuerais ma recherche sur son forum ;o)

      Bonne continuation
      0