Comment faire pour récupérer des données à partir de la base de données access(.accdb) dans excel à l'aide de vba
Je travaille sur Excel macros VBA et je veux récupérer des données à partir d'une base de données MS Access (.accdb
fichier).
J'ai essayé d'utiliser en dessous de la chaîne de connexion et il jette erreur d'exécution '438'
Dim cn As Object, rs As Object,DBFullName As String,Target As Range
DBFullName = "D:\Tool_Database\Tool_Database.accdb"
Set Target = Sheets("Sheet1").Range("A1")
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & DBFullName & ";"
Set rs = CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM test", cn, , , adCmdText
For int i = 0 To rs.Fields.Count - 1
Target.Offset(1, i).Value = rs.Fields(i).Name
Next
Target.Offset(1, 0).CopyFromRecordset rs
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
Merci de m'aider à résoudre l'erreur
Vous dites que c'est un
.mdb est une faute de frappe, il est .accdb
.accdb
fichier - alors pourquoi êtes-vous usnig un .mdb
extension dans votre chaîne de connexion?? DBFullName = "D:\Tool_Database\Tool_Database.mdb"
??.mdb est une faute de frappe, il est .accdb
OriginalL'auteur user2514925 | 2016-09-02
Vous devez vous connecter pour publier un commentaire.
Run-time error: '438'
signifie que leObject doesn't support this property or method..
Vous obtenez cette erreur, parce que vous êtes le mélange
VB.Net
avecVBA
Ce
devrait être
À côté de la ci-dessus, je suppose que
DBFullName = "D:\Tool_Database\Tool_Database.mdb"
est une faute de frappe à partir de votre fin que vous utilisez.Accdb
?pas de. il suffit de changer la ligne comme je l'ai mentionné ci-dessus
J'ai essayé le code ci-dessus et il fonctionne très bien pour la base de données que j'ai. J'ai un doute sur les données dans la base de données. Essayez ce jeu d'enregistrements de la commande d'ouverture: rs.Open "SELECT * from Livres", cn, adOpenStatic, adLockReadOnly
Êtes-vous utilisateur user2514925?
Siddharth Déroute: je ne suis Pas user2514925
OriginalL'auteur Siddharth Rout
Cela devrait le faire pour vous. Baisse de la clause where si vous ne voulez pas appliquer un filtre.
Aussi, une référence à:
Microsoft ActiveX Data Objects 2.8 Bibliothèque
OriginalL'auteur