Access : travail avec feuille de calcul excel
Résolu
Leteint
Messages postés
45
Statut
Membre
-
Leteint Messages postés 45 Statut Membre -
Leteint Messages postés 45 Statut Membre -
Bonjour,
je travaille avec Access 2000 et access 2003.
Je cherche à récupérer des valeurs d'une feuille excel.
J'ai constemment une erreur : "Instruction SQL non valide; 'DELETE', 'INSERT', 'PROCDURE', 'SELECT' ou 'UPDATE' attendus."
Je pense que l'erreur se trouve dans l'instruction : rst1.Open "Sheet1", cnxn
sans vraiment comprendre pourquoi.
Je fais la même chose avec une base access et ça marche trés bien ...
Donc si vous avez une piste je vous serai trés reconnaissant.
Je vous livre le code commenté :
Private Sub btn_req_Click()
On Error GoTo Err_btn_req_Click
'connection au classeur externe
Dim cnxn As New ADODB.Connection
Dim rst1 As New ADODB.Recordset
'connection à la source de donnée externe
cnxn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=F:\access\procurmentDM\TEST.xls;" & _
"Extended Properties=Excel 8.0;"
' ouverture d'un jeu d'enregistrements en lecture seule sur le fichier excel
Set rst1 = New ADODB.Recordset
' ouverture de la feuille "Sheet1"
rst1.Open "Sheet1", cnxn
'un pauvre print des colonnes
Debug.Print rst1.Fields(1).Value, rst1.Fields(2).Value
'nettoyage de la mémoire
rst1.Close
Set rst1 = Nothing
cnxn.Close
Set cnxn = Nothing
Exit Sub
' en cas d'erreur :
Err_btn_req_Click:
MsgBox Err.Description
Exit Sub
End Sub
Merci du temps que vous avez pris pour lire ma question.
JB
je travaille avec Access 2000 et access 2003.
Je cherche à récupérer des valeurs d'une feuille excel.
J'ai constemment une erreur : "Instruction SQL non valide; 'DELETE', 'INSERT', 'PROCDURE', 'SELECT' ou 'UPDATE' attendus."
Je pense que l'erreur se trouve dans l'instruction : rst1.Open "Sheet1", cnxn
sans vraiment comprendre pourquoi.
Je fais la même chose avec une base access et ça marche trés bien ...
Donc si vous avez une piste je vous serai trés reconnaissant.
Je vous livre le code commenté :
Private Sub btn_req_Click()
On Error GoTo Err_btn_req_Click
'connection au classeur externe
Dim cnxn As New ADODB.Connection
Dim rst1 As New ADODB.Recordset
'connection à la source de donnée externe
cnxn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=F:\access\procurmentDM\TEST.xls;" & _
"Extended Properties=Excel 8.0;"
' ouverture d'un jeu d'enregistrements en lecture seule sur le fichier excel
Set rst1 = New ADODB.Recordset
' ouverture de la feuille "Sheet1"
rst1.Open "Sheet1", cnxn
'un pauvre print des colonnes
Debug.Print rst1.Fields(1).Value, rst1.Fields(2).Value
'nettoyage de la mémoire
rst1.Close
Set rst1 = Nothing
cnxn.Close
Set cnxn = Nothing
Exit Sub
' en cas d'erreur :
Err_btn_req_Click:
MsgBox Err.Description
Exit Sub
End Sub
Merci du temps que vous avez pris pour lire ma question.
JB
A voir également:
- Access : travail avec feuille de calcul excel
- Acer quick access - Forum Logiciels
- Access appdata - Guide
- Exemple base de données access à télécharger gratuit - Forum Access
- Exemple base de données Access de gestion ✓ - Forum Logiciels
- [Access] creer base données client-produits - Forum Programmation
3 réponses
Bonjour et merci de ta réponse et du temps que tu as pris à chercher.
Par chance, on vient juste de m'expliquer, je te donne donc l'info :
cnxn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=F:\access\procurmentDM\TEST.xls;" & _
"Extended Properties=Excel 8.0;"
ouvre bien une feuille excel
mais par contre il faut faire :
rst1.Open "Sheet1", cnxn,,, adcmdtable
pour ouvrir une plage nommée, ce qui n'est pas la même chose qu'une feuille de calcul d'un document Excel !
En outre le new était de trop dans la déclaration du recordset.
Merci
@+
Par chance, on vient juste de m'expliquer, je te donne donc l'info :
cnxn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=F:\access\procurmentDM\TEST.xls;" & _
"Extended Properties=Excel 8.0;"
ouvre bien une feuille excel
mais par contre il faut faire :
rst1.Open "Sheet1", cnxn,,, adcmdtable
pour ouvrir une plage nommée, ce qui n'est pas la même chose qu'une feuille de calcul d'un document Excel !
En outre le new était de trop dans la déclaration du recordset.
Merci
@+
Bonjour,
J'ai trouvé une solution en VB. Dans l'exemple, il s'agit d'importer la feuil2! dans Access. Ça fonctionne, j'ai essayé en Access 2000.
DoCmd.TransferSpreadsheet acImport, 8, "<Nom de la table>", "C:\<Chemin explicite>\<fichier Excel>.xls", True, "feuil2!"
Cordialement
La science ne fait que trouver ce qui existe depuis toujours.
Hubert REEVES.
J'ai trouvé une solution en VB. Dans l'exemple, il s'agit d'importer la feuil2! dans Access. Ça fonctionne, j'ai essayé en Access 2000.
DoCmd.TransferSpreadsheet acImport, 8, "<Nom de la table>", "C:\<Chemin explicite>\<fichier Excel>.xls", True, "feuil2!"
Cordialement
La science ne fait que trouver ce qui existe depuis toujours.
Hubert REEVES.