OVH Cloud OVH Cloud

Résultat d'1 requête Access ds Excel

1 réponse
Avatar
Miane
bonjour tt le monde
Peut - on exporter le r=E9sultat d'une requ=EAte Access vers=20
une feuille de calcul Excel.
Autrement dit : Peut - on importer d'excel le r=E9sultat=20
d'une requ=EAte Access?

Je cherche sp=E9cialement =E0 placer le r=E9sultat d'une=20
requ=EAte Access (une op=E9ration "compte")dans une cellule=20
dans une feuille de calcul Excel.

Merci d'avance.

1 réponse

Avatar
Denis Michon
Bonsoir Miane,

Tu peux t'inspirer de ceci :

Tu dois modifier le nom de la feuille d'excel, la plage où les données seront copiées.
Tu dois modifier le chemin et le nom de la base de données source d'Access
Tu dois aussi définir la requête approprié à ton besoin.


'---------------------------------------
Sub RequêteAvecADO()

'Ajouter la bibliothèque suivante :
'Microsoft activex data objects 2.0 librairy

'Attention, si access possède un champ mémo
'Limitation à 1823 caractères le nombre de
'caractère importé dans Excel

Dim A As Long, B As Long, C As Integer
Dim cnt As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim MyRange As Range
Dim Requête As String

'détermine la cellule supérieur gauche où
'le recordset va être copié

With Worksheets("Feuil1")
Set MyRange = .Range("g4") 'A définir
End With

'La chaîne de connexion à une base de donnée Access
cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:ExcelComptoir.mdb;"

'Requête déterminant la valeur du recordset
Requête = "Select * From Employés "

'Ouverture du RecordSet
Rst.Open Requête, cnt, adOpenStatic

'Détermine si le recordset contient des enregistrements
If Rst.RecordCount >= 1 Then
'Si tu es intéressé de récupérer directement les noms
'des champs de ton recordset, tu peux utiliser ce
'qui suit :

Do
MyRange.Offset(, C) = Rst.Fields(C).Name
C = C + 1
x = x + 1
Loop Until x = Rst.Fields.Count

'Cette ligne de code copie tous les enregistrements du recordset
'vers ta plage de cellule définie au début de la procédure.
'Cette ligne n'est pas valide pour une version plus agée qu'excel 2000
'La méthode version 97 fonctionne un peu différemment.
MyRange.Offset(1, 0).CopyFromRecordset Rst

'Si aucune donnée n'est trouvé
Else
MsgBox "Aucune donnée correspond à vos critères."
End If

'Ferme la connexion et le recordset
Rst.Close: cnt.Close

'libérer l'espace mémoire des objets utilisés dans la procédure:
Set Rst = Nothing: Set cnt = Nothing
Set MyRange = Nothing: Set Rst = Nothing

End Sub
'---------------------------------------



Salutations!





"Miane" a écrit dans le message de news:026a01c3a000$783f62d0$
bonjour tt le monde
Peut - on exporter le résultat d'une requête Access vers
une feuille de calcul Excel.
Autrement dit : Peut - on importer d'excel le résultat
d'une requête Access?

Je cherche spécialement à placer le résultat d'une
requête Access (une opération "compte")dans une cellule
dans une feuille de calcul Excel.

Merci d'avance.