Erreur Export données Excel 2016->Access 2016 avec fichier .accdb

Y compris Power BI, Power Query et toute autre question en lien avec Excel
e
elistez
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 3 décembre 2018
Version d'Excel : 2016 FR

Message par elistez » 3 décembre 2018, 10:34

Bonjour les amis

Je vous écris car je suis dans une impasse pour programmer une simple affaire, celle d'exporter des données d'un fichier excel vers un fichier Access en format .accdb. Comme c'est la première fois que je code en VBA une connection entre Excel et Access, j'ai cherché sur internet sur la façon de faire. La majorité des forums que j'ai visités convergent à l'utilisation de DAOEngine que j'ai adapté à mon programme. Et bien sûr ça ne marche jamais du 1er coup. Je reçois l'erreur suivante :
Message erreur.png
Message erreur.png (8.72 Kio) Vu 191 fois
Je ne comprends pas d'où vient cette erreur? Est-ce qu'il faut que j'utilise un format différent de .accdb? Est-ce que vous aurez un exemple de code pour ce genre de fonction que vous aurez la gentillesse de m'envoyer?

Merci infiniment de votre aide & excellente journée :)

Pour info ci dessous le code de la macro correspondante :
Sub Connect_DB_2()
    Dim j As Integer
    Dim strDBpath As String
    Dim oDAO As DAO.DBEngine
    Dim oDB As DAO.Database
    Dim oRS As DAO.Recordset
    
    'Fenêtre d'invit pour sélectionner le fichier de la FN à compiler
        strDBpath = Application.GetOpenFilename _
        (Title:="Choisir le fichier Access de la Base de Données des FN", _
        FileFilter:="Access Files *.accdb* (*.accdb*),")
        
            If InStr(LCase(strDBpath), "faux") > 0 Then
                MsgBox "Aucun fichier sélectionné.", vbExclamation, "Sorry!"
                Exit Sub
        
            End If 'If InStr(LCase(strDBpath), "faux") > 0
                Set oDAO = New DAO.DBEngine
                Set oDB = oDAO.OpenDatabase(strDBpath, False, False)
                Set oRS = oDB.OpenRecordset(target_db, dbOpenTable)          
                 
               oRS.AddNew
                
               For j = 1 To Selection.Columns.Count              

                   oRS.Fields(j) = Selection.Range("A"&j).Value
                    
               Next j
                
               oRS.Update
              
            oDB.Close
            
End Sub

Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'741
Appréciations reçues : 439
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 3 décembre 2018, 10:49

Bonjour,
Tu as Excel 2016, tu disposes donc de Récupérer et transformer (Power Query).
Tu peux facilement effectuer une requête dans ton fichier Microsoft Access.
Ruban, Données, Récupérer et transformer, Nouvelle requête, A partir d'une base de données, A partir d'une base de données Microsoft Access..
Cdlt.
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
j
jmd
Fanatique d'Excel
Fanatique d'Excel
Messages : 10'033
Appréciations reçues : 200
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 3 décembre 2018, 11:07

bonjour

salut au passage Jean-Eric

s'il faut importer de l'Excel dans Access,
ouvrir Access, menu Données externes / nouvelle source, naviguer vers ton Excel

amitiés
Apprenez les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données".
Apprendre les fonctionnalités "récentes".
Avatar du membre
pierrep56
Membre dévoué
Membre dévoué
Messages : 847
Appréciations reçues : 86
Inscrit le : 18 juin 2014
Version d'Excel : 2016

Message par pierrep56 » 3 décembre 2018, 11:09

Bonjour à tous,

Sinon, j'ai écris une série d'articles sur le sujet, avec quelques démo et code, sur mon blog :
http://tatiak.canalblog.com/archives/ex ... index.html

et celui-ci en particulier :
http://tatiak.canalblog.com/archives/20 ... 65554.html

Pierre
1 membre du forum aime ce message.
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'741
Appréciations reçues : 439
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 3 décembre 2018, 12:30

Re,
Oups !...
j'ai confondu Export et Import.
Cdlt.
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
e
elistez
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 3 décembre 2018
Version d'Excel : 2016 FR

Message par elistez » 3 décembre 2018, 14:04

Bonjour

Merci pour votre retour. Je suis allé sur le lien que vous m'avez envoyé et ai essayé d'utiliser le code suivant :
Sub Insert_DB(Tbl As String, Head As String, Data As String)

    Req = "INSERT INTO [" & Tbl & "]"
    If Not Head = "" Then Req = Req & " (" & Head & ")"
    Req = Req & " VALUES (" & Data & ")"
    lig = Sql.Query(Req)
End Sub
Il m'affiche une erreur sur la ligne lig = ....
Pourrez vous svp m'aider à résoudre ce problème?

Merci :)
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message