VBA de connexion ADO de .fichier xlsx
Je suis en train de copier des données à partir d'un fermé de classeur Excel 2007 (.xlsx) à l'aide d'une connexion ADO.
J'ai la chaîne de connexion de travail. Mais j'obtiens une erreur automation lorsque j'essaie d'ouvrir la Commande dans le jeu d'enregistrements (de la Deuxième à la dernière ligne).
Cela peut ne pas être clair dans le code ci-dessous afin:
"wsSummary" est un objet de feuille de calcul
"strSourceFile" est une chaîne de caractères avec la cible données dont j'ai besoin pour la copie (par ex. Template.xlsx)
strSourceFile = wsSummary.Cells(nFirstRow + 4, 7)
strSheetSource = "Sheet1"
strSQL = "SELECT * FROM [" & strSheetSource & "]"
Set dbConnection = New ADODB.Connection
With dbConnection
.Provider = "Microsoft.ACE.OLEDB.12.0;"
.connectionString = "Data Source=" & strPOINTDataPath & strSourceFile & _
";Extended Properties=""Excel 12.0 Xml;HDR=NO;IMEX=1"";"
.ConnectionTimeout = 40
.Open
End With
If dbConnection = "" Then GoTo ErrorText
Set cmd = New ADODB.Command
With cmd
.ActiveConnection = dbConnection
.CommandText = strSQL
End With
Set rs = New ADODB.Recordset
With rs
.ActiveConnection = dbConnection
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
.LockType = adLockOptimistic
.Open cmd
End With
Vous devez vous connecter pour publier un commentaire.
Je pense que vous avez manqué
$ character
dans votre instruction SQL. Essayez de changer de ligne appropriée dans celui-ci:ou modifier
strSheetSource variable
dans cette: