Exporter des données Excel vers Access avec VBA (Images et Code)
Qu'est-ce que c'est ?
Ce code VBA vous aide à télécharger ou exporter des données Excel vers Access en un clic.
Pourquoi ?
Tu peux exporter des données Excel vers Access sans même ouvrir la base de données Access.
Comment exporter des données Excel vers Access
Étape 1: Ouvrez le Exceller et se rendre dans le générateur de code VBA (Alt + F11) et ouvrir un nouveau module.
.
Étape 2: Copiez et collez le code ci-dessous.
Const TARGET_DB = "myDB.accdb" Remplacez 'myDB.accdb' par le nom de votre base de données, assurez-vous que les bases de données Excel et Access se trouvent sur le même chemin.
Sub PushTableToAccess()
Dim cnn As ADODB.Connection
Dim MyConn
Dim rst As ADODB.Recordset
Dim i As Long, j As Long
Dim Rw As Long
Sheets("Nom de la feuille").Activate Remplacez le "Nom de la feuille" par le nom de votre feuille Excel.
Rw = Range("A65536").End(xlUp).Row
Donnez à votre feuille Excel une plage de données
Set cnn = Nouvelle connexion ADODB
MyConn = ThisWorkbook.Path & Application.PathSeparator & TARGET_DB
Avec cnn
.Provider = "Microsoft.ACE.OLEDB.12.0"
Ouvrir MyConn
Terminer par
Remplacez "tblMyExcelUpload" par le nom de votre table dans Access.
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseServer
rst.Open Source:="tblMyExcelUpload", ActiveConnection:=cnn, _
CursorType:=adOpenDynamic, LockType:=adLockOptimistic, _
Options:=adCmdTable
Chargement de tous les enregistrements d'Excel vers Access.
Pour i = 2 à Rw
rst.AddNew
Pour j = 1 à 7
rst(Cells(1, j).Value) = Cells(i, j).Value
J suivant
rst.Update
Suivant i
' Fermer la connexion
rst.Close
cnn.Fermer
Set rst = Rien
Set cnn = Nothing
Fin du sous-marin
Étape 3Cliquez sur le bouton Exécuter ou sur F5 (vous pouvez également insérer un bouton/une forme dans la feuille Excel, puis faire un clic droit et assigner cette macro pour qu'elle s'exécute à chaque fois). Vous avez terminé le téléchargement ! Les enregistrements Excel ont été téléchargés avec succès dans Access. Ouvrez votre table de base de données Access et vérifiez les données.
Note: Assurez-vous que l'option "Microsoft ActiveX Data Objects Library" est activée dans l'écran d'accueil. Outils - Références (le numéro utilise la dernière version [6.1 au moment de la publication de cet article]).
Épingle
8 réponses
Bonjour à tous ;
Ces deux chemins d'accès doivent-ils être identiques pour que la connexion ADODBC fonctionne ? C'est-à-dire les chemins ThisWorkbook.Path et Target_DB.
Commandement d'en haut :
ThisWorkbook.Path & Application.PathSeparator & TARGET_DB
Ou bien, le chemin d'accès au classeur peut-il être le suivant : "Workbook.Path" ?
"C:\NMyExcelFiles\NMyWorkbook.xlsx" et la base de données Access TARGET_DB se trouve dans
"C:\NMyDataBases\NMyAccessDB.accdb" ?
Mon code fonctionne lorsque le classeur Excel et la base de données Access se trouvent dans le même dossier, mais lorsqu'ils se trouvent dans des dossiers différents (structure de bibliothèque correctement organisée), le code échoue au point .Open MyConn.
Merci à tous,
Mario,
Bonjour
Comment définir le mot de passe ?
Réservoirs
rst(Cells(1, j).Value) = Cells(i, j).Value
le code se brise ici
———-
Erreur 3265
L'article est introuvable dans la collection correspondant au nom ou à l'ordinal demandé.
———-
A quoi ressemblerait le code si la feuille de calcul et la base de données se trouvaient à des endroits différents, c'est-à-dire sur des chemins différents ?
Bonjour,
mon code s'exécute jusqu'à ce que
Sheets("Nom de la feuille").Activate
J'ai sélectionné la feuille, mais rien ne se passe.
Pouvez-vous nous conseiller ?
Merci de votre attention.
Try Worksheets("Yoursheet").Activate
Existe-t-il une commande unique pour télécharger les données comme (Range.CopyFromRecordset) ?
Bonjour Krishnan, je ne suis pas sûr, laissez-moi explorer et je vous tiendrai au courant.