OVH Cloud OVH Cloud

Données de Access

3 réponses
Avatar
cyberjc
Bonjour, je voudrai utiliser dans ma feuille Excel (via du code vba) les
résultats d'une requête sql basée sur Access. Comment je dois m'y prendre
pour m'y connecter (les deux fichiers sont dans le même répertoire) et creer
un jeu pour pouvoir l'exploiter. D'avance merci pour votre aide -
Jean-Christophe

3 réponses

Avatar
Patrick Fredin
Bonjour,

Il faut utiliser ADO. C'est très puissant et efficace.

Patrick


Bonjour, je voudrai utiliser dans ma feuille Excel (via du code vba) les
résultats d'une requête sql basée sur Access. Comment je dois m'y prendre
pour m'y connecter (les deux fichiers sont dans le même répertoire) et creer
un jeu pour pouvoir l'exploiter. D'avance merci pour votre aide -
Jean-Christophe


Avatar
anonymousA
bonjour,

plusieurs méthodes possibles:
-ADO
-ouverture de l'objet Access puis exécution de la requête et renvoi par
copyfromrecordset ou parcours du recordset
-ouverture de l'objet Access puis exécution de la requête et renvoi du
recordset dans un fichier via .TransferSpreadsheet de la popriété DoCmd de
VAB d'Access
-Utilisation de mS Query

C'est au choix.Dépend de ce qu'on veut faire, de la rapidité qu'on attend et
de l'utilisation ultérieure ( conservation des données ou volatilité).

A+



Bonjour, je voudrai utiliser dans ma feuille Excel (via du code vba) les
résultats d'une requête sql basée sur Access. Comment je dois m'y prendre
pour m'y connecter (les deux fichiers sont dans le même répertoire) et creer
un jeu pour pouvoir l'exploiter. D'avance merci pour votre aide -
Jean-Christophe


Avatar
MichDenis
Bonjou Cyberjc,

Si j'ai compris ta demande, tu as une requête déjà existante dans ton application Acces, et tu voudrais pouvoir
l'exécuter et recueillir les données de cette requête dans Excel :


voici un exemple comment procéder :

à partir de la fenetre VBE(visual basic editor), tu ajoutes la référence suivante :

"Microsoft Activex Data Objects 2.6 Librairy"

'-----------------------------------------------
Sub ExecuterUneRequete()

'Charger la référence suivante :
'Microsoft Activex Data objects 2.6 librairy

Dim Con As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim Com As New ADODB.Command
Dim BaseAccess As String

BaseAccess = "C:excelAccessComptoir.mdb"
'si tu as une base sécurisée
BaseAccessSecurity = "C:excelAccessMySystem.mdw"

'Pour une connection "conventionnelle" à access
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & BaseAccess & ";"

'Pour établir une connexion si tu as une
'base système -> pour la sécurité
'con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & BaseAccess & ";" & _
"Jet OLEDB:System Database=" & BaseAccessSecurity & _
",myUsername", "myPassword"

Com.ActiveConnection = Con
Com.CommandType = adCmdStoredProc

'"ReqDenis2Paramètres"= Nom de ta requête
Com.CommandText = "ReqDenis2Paramètres"
Set Rst = Com.Execute

If Rst.BOF = True And Rst.EOF = True Then
MsgBox "Aucun enregistrement trouvé."
Else
'Détermine où seront copiées les enregistrements
With Worksheets(1)
Set Rg = .Range("A1")
End With
'Copie les en-têtes des champs du recordset
'en première ligne
For A = 0 To Rst.Fields.Count - 1
Rg.Offset(0, A).Value = Rst.Fields(A).Name
Next
'Copie tous les enregistrements vers Excel ...
Rg.Offset(1).CopyFromRecordset Rst
End If
'Libère l'espace mémoire utilisé
Set Rg = Nothing
Rst.Close: Con.Close
Set Com = Nothing
Set Rst = Nothing: Set Con = Nothing

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


Salutations!



"cyberjc" a écrit dans le message de news:

Bonjour, je voudrai utiliser dans ma feuille Excel (via du code vba) les
résultats d'une requête sql basée sur Access. Comment je dois m'y prendre
pour m'y connecter (les deux fichiers sont dans le même répertoire) et creer
un jeu pour pouvoir l'exploiter. D'avance merci pour votre aide -
Jean-Christophe