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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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
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
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
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
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
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" <cyberjc@discussions.microsoft.com> a écrit dans le message de news:
21AC1627-96E5-450C-BA05-197BEB60AC27@microsoft.com...
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
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