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
Pierre Fauconnier
Bonjour
Le plus simple, à mon avis, est d'utiliser MSQuery ( Menu Données/Données externes/Créer une requête )... MSQuery utilise une syntaxe proche de SQL mais dispose d'un graphisme proche d'access et d'un assistant (moyen...)...
Cela convient-il??
-- Pierre Fauconnier () Les sept laids tuent ( Lewis Carol ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"charly" a écrit dans le message de news:1fa0801c45829$32cb3c60$ Est il possible d'effectuer une requête dans une base de données access à partir d'excel pour obtenir une valeur dans une cellule.
Merci
Bonjour
Le plus simple, à mon avis, est d'utiliser MSQuery ( Menu Données/Données
externes/Créer une requête )... MSQuery utilise une syntaxe proche de SQL
mais dispose d'un graphisme proche d'access et d'un assistant (moyen...)...
Cela convient-il??
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam)
Les sept laids tuent ( Lewis Carol )
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"charly" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:1fa0801c45829$32cb3c60$a401280a@phx.gbl...
Est il possible d'effectuer une requête dans une base de
données access à partir d'excel pour obtenir une valeur
dans une cellule.
Le plus simple, à mon avis, est d'utiliser MSQuery ( Menu Données/Données externes/Créer une requête )... MSQuery utilise une syntaxe proche de SQL mais dispose d'un graphisme proche d'access et d'un assistant (moyen...)...
Cela convient-il??
-- Pierre Fauconnier () Les sept laids tuent ( Lewis Carol ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"charly" a écrit dans le message de news:1fa0801c45829$32cb3c60$ Est il possible d'effectuer une requête dans une base de données access à partir d'excel pour obtenir une valeur dans une cellule.
Merci
anonymous
oui. Plusieurs méthodes existent. celle-ci march
Attention: il faut que tu référencies la bibliothèque Microsoft Access object Library dans ton projet . Grace à cela , Excel saura reconnaitre tous les mots clés de VBA sous Access et une fois instancié Access, tu pourras parler en Access à VBA
Dim appAccess As Access.Application, rs as recordse
'instancie Access pour Access 200
Set appAccess = CreateObject("Access.Application.9"
'Ouvre la base de données que tu as désignée dans la fenêtre Microsoft Access.IL faut que tu déclares nombase1 comme un chemin complet d'accès à ta base de données .md
appAccess.OpenCurrentDatabase nombase
'ici 2 solutions s'offrent à toi si tu cherches à récupérer des élements via une requête sur une table: soit tu connais le nom de la requête qui existe et qui t'interesse dans le .mdb et tu peux l'appeler directement en déclarant son nom (NOMREQUETE) comme décrit dans l'instruction 1er cas ou bien tu construis ta requête de toute pièce en utilisant une instruction SQL auquel cas les instructions sont celles du 2eme ca
1er cas : Set rs = appAccess.CurrentDb.OpenRecordset(NOMREQUETE, , dbReadOnly
2eme cas: par exempl nomreqsql="SELECT [Nom de ta table].[Nom du champ N°1 de ta table], [Nom de ta table].[Nom du champ N°2 de ta table] FROM [Nom de ta table] WHERE ((([Nom de ta table].[Nom du champ N°1 de ta table])="ton critère de requete")); Set rs = appAccess.CurrentDb.OpenRecordset(nomreqsql, , dbReadOnly
'ensuite une fois ouverte ta requête et suivant la nature des élements qu'elle retourn 'inscrire le résultat d'un champ du 1er enregistrement de ton recordse
Thisworkbook.sheets("Feuil1").cells(1,1).value= rs.Fields("Nom du champ N°1 de ta table").valu
'si tu veux récupérer l'ensemble des enregistrements pour 1 champ donné et faire une addition p.e , il te faut faire une boucle sur l'ensemble des enregistrements d'un champ donné
rs.movefirs D Thisworkbook.sheets("Feuil1").cells(1,1).value= rs.Fields("Nom du champ N°1 de ta table").value+ Thisworkbook.sheets("Feuil1").cells(1,1).valu Loop until rs.eof=tru
'ensuite il faut fermer l'ensemble des élements ouverts sous Access et liberer les variable
rs.clos set rs=nothin
With appAcces .CloseCurrentDatabas .Qui End Wit
set appaccess=nothin
Voilà. J'espère que ça peut t'aider
oui. Plusieurs méthodes existent. celle-ci march
Attention: il faut que tu référencies la bibliothèque Microsoft Access object Library dans ton projet . Grace à cela , Excel saura reconnaitre tous les mots clés de VBA sous Access et une fois instancié Access, tu pourras parler en Access à VBA
Dim appAccess As Access.Application, rs as recordse
'instancie Access pour Access 200
Set appAccess = CreateObject("Access.Application.9"
'Ouvre la base de données que tu as désignée dans la fenêtre Microsoft Access.IL faut que tu déclares nombase1 comme un chemin complet d'accès à ta base de données .md
appAccess.OpenCurrentDatabase nombase
'ici 2 solutions s'offrent à toi si tu cherches à récupérer des élements via une requête sur une table: soit tu connais le nom de la requête qui existe et qui t'interesse dans le .mdb et tu peux l'appeler directement en déclarant son nom (NOMREQUETE) comme décrit dans l'instruction 1er cas ou bien tu construis ta requête de toute pièce en utilisant une instruction SQL auquel cas les instructions sont celles du 2eme ca
1er cas : Set rs = appAccess.CurrentDb.OpenRecordset(NOMREQUETE, , dbReadOnly
2eme cas: par exempl
nomreqsql="SELECT [Nom de ta table].[Nom du champ N°1 de ta table], [Nom de ta table].[Nom du champ N°2 de ta table] FROM [Nom de ta table] WHERE ((([Nom de ta table].[Nom du champ N°1 de ta table])="ton critère de requete"));
Set rs = appAccess.CurrentDb.OpenRecordset(nomreqsql, , dbReadOnly
'ensuite une fois ouverte ta requête et suivant la nature des élements qu'elle retourn
'inscrire le résultat d'un champ du 1er enregistrement de ton recordse
Thisworkbook.sheets("Feuil1").cells(1,1).value= rs.Fields("Nom du champ N°1 de ta table").valu
'si tu veux récupérer l'ensemble des enregistrements pour 1 champ donné et faire une addition p.e , il te faut faire une boucle sur l'ensemble des enregistrements d'un champ donné
rs.movefirs
D
Thisworkbook.sheets("Feuil1").cells(1,1).value= rs.Fields("Nom du champ N°1 de ta table").value+ Thisworkbook.sheets("Feuil1").cells(1,1).valu
Loop until rs.eof=tru
'ensuite il faut fermer l'ensemble des élements ouverts sous Access et liberer les variable
Attention: il faut que tu référencies la bibliothèque Microsoft Access object Library dans ton projet . Grace à cela , Excel saura reconnaitre tous les mots clés de VBA sous Access et une fois instancié Access, tu pourras parler en Access à VBA
Dim appAccess As Access.Application, rs as recordse
'instancie Access pour Access 200
Set appAccess = CreateObject("Access.Application.9"
'Ouvre la base de données que tu as désignée dans la fenêtre Microsoft Access.IL faut que tu déclares nombase1 comme un chemin complet d'accès à ta base de données .md
appAccess.OpenCurrentDatabase nombase
'ici 2 solutions s'offrent à toi si tu cherches à récupérer des élements via une requête sur une table: soit tu connais le nom de la requête qui existe et qui t'interesse dans le .mdb et tu peux l'appeler directement en déclarant son nom (NOMREQUETE) comme décrit dans l'instruction 1er cas ou bien tu construis ta requête de toute pièce en utilisant une instruction SQL auquel cas les instructions sont celles du 2eme ca
1er cas : Set rs = appAccess.CurrentDb.OpenRecordset(NOMREQUETE, , dbReadOnly
2eme cas: par exempl nomreqsql="SELECT [Nom de ta table].[Nom du champ N°1 de ta table], [Nom de ta table].[Nom du champ N°2 de ta table] FROM [Nom de ta table] WHERE ((([Nom de ta table].[Nom du champ N°1 de ta table])="ton critère de requete")); Set rs = appAccess.CurrentDb.OpenRecordset(nomreqsql, , dbReadOnly
'ensuite une fois ouverte ta requête et suivant la nature des élements qu'elle retourn 'inscrire le résultat d'un champ du 1er enregistrement de ton recordse
Thisworkbook.sheets("Feuil1").cells(1,1).value= rs.Fields("Nom du champ N°1 de ta table").valu
'si tu veux récupérer l'ensemble des enregistrements pour 1 champ donné et faire une addition p.e , il te faut faire une boucle sur l'ensemble des enregistrements d'un champ donné
rs.movefirs D Thisworkbook.sheets("Feuil1").cells(1,1).value= rs.Fields("Nom du champ N°1 de ta table").value+ Thisworkbook.sheets("Feuil1").cells(1,1).valu Loop until rs.eof=tru
'ensuite il faut fermer l'ensemble des élements ouverts sous Access et liberer les variable
rs.clos set rs=nothin
With appAcces .CloseCurrentDatabas .Qui End Wit
set appaccess=nothin
Voilà. J'espère que ça peut t'aider
anonymous
j'ai oublié le rs.movenext dans la boucle Do -> Loop de mon message précédent.
j'ai oublié le rs.movenext dans la boucle Do -> Loop de mon message précédent.