Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1304 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Access] VBA récuperer données requête

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Access] VBA récuperer données requête

n°1410469
Big-Foot
Posté le 20-07-2006 à 17:27:28  profilanswer
 

Bonjour
 
Je dois générer un document Excel à partir d'une DB Access. J'y arrive presque, il me manque une chose: récupérer les données fournies par une requête enregistrée. (Je dois procéder ainsi)
 
J'ai trouvé ce code:

Code :
  1. Set rec = CurrentDb.OpenRecordset("NomTable", dbOpenSnapshot)


 
Cela fonctionne, mais uniquement pour les données d'une table. Lorsque je remplace le nom de la table par celui de la requête qui m'intéresse ça plante.
 
Je ne connais pas très bien VBA, si vous pouviez m'aider à adapter ce petit bout de code à mes besoins ça serait vraiment sympa. Merci.
 
PS: j'ai fait pas mal de recherches sur google sans pour autant trouver de solution...


Message édité par Big-Foot le 28-07-2006 à 12:53:25
mood
Publicité
Posté le 20-07-2006 à 17:27:28  profilanswer
 

n°1410482
Arjuna
Aircraft Ident.: F-MBSD
Posté le 20-07-2006 à 17:32:49  profilanswer
 

"select * from larequete"
 
bon, ok, y'a mieu
 
mais t'as dit que ton truc est urgent... donc tu chercheras mieu après :p

n°1410686
Big-Foot
Posté le 20-07-2006 à 22:49:28  profilanswer
 

Arjuna a écrit :

"select * from larequete"


 
C'est du SQL ça non ? Mais moi j'ai une requête SQL enregistrée dans Access, et je veux utiliser celle-ci sans la copier-coller en fait (elle prend une valeur d'un formulaire et je pense pas que ça va fonctionner depuis VBA, en tout cas sans me donner encore du travail).
Bon si jamais il n'y a que cette solution quel serait le code qui entoure la requête SQL ? Càd connection à la base définition des variables etc ??


Message édité par Big-Foot le 20-07-2006 à 22:49:42
n°1410824
Arjuna
Aircraft Ident.: F-MBSD
Posté le 21-07-2006 à 09:40:38  profilanswer
 

marequete, c'est ta requête ACCESS.
 
toi au lieu de l'appeller directement, tu fait un SELECT à partir d'elle.
 
ca revient RIGOUREUSEMENT AU MEME

n°1410865
Big-Foot
Posté le 21-07-2006 à 10:23:00  profilanswer
 

J'ai essayé de faire comme tu dis. Alors ça marche avec une requête simple mais pas avec la requête qui m'intéresse.
 

Code :
  1. SQLstr = "SELECT CPS_ProductSearch_5GroupProd.PRODUCT_DESCRIPTION FROM
  2. CPS_ProductSearch_5GroupProd WHERE
  3. (((CPS_ProductSearch_5GroupProd.PRODUCT_DESCRIPTION) = [Forms]![CPS_ProductSearch_5GroupProd]![PRODUCT_DESCRIPTION_form]))
  4. ORDER BY CPS_ProductSearch_5GroupProd.ABBREVIATED_DESCRIPTION;"


 
Ma requête est basée sur d'autre requêtes et elle recoit un variable comme condition. C'est ça qui pose problème ?


Message édité par Big-Foot le 21-07-2006 à 10:23:32
n°1410910
Arjuna
Aircraft Ident.: F-MBSD
Posté le 21-07-2006 à 10:51:45  profilanswer
 

normal.
là tu mets pas la valeur de ton champs, mais son nom...
 
"... = " & "'" & Replace([Forms]![CPS_ProductSearch_5GroupProd]![PRODUCT_DESCRIPTION_form], "'", "''" ) & "'" & "..."

Message cité 1 fois
Message édité par Arjuna le 21-07-2006 à 10:52:15
n°1410915
betsamee
Asterisk Zeperyl
Posté le 21-07-2006 à 10:58:48  profilanswer
 

soit dit en passant tu peux tres bien generer un excel a partir d une requete (deja enregistree dans tes requetes) depuis le VBA access avec la fonction  
DoCmd.TransferSpreadsheet acExport, , "nomrequete", "cheminfichierexcel.xls", False, ""

Message cité 1 fois
Message édité par betsamee le 21-07-2006 à 10:59:34
n°1410942
Arjuna
Aircraft Ident.: F-MBSD
Posté le 21-07-2006 à 11:17:22  profilanswer
 
n°1410958
Big-Foot
Posté le 21-07-2006 à 11:36:48  profilanswer
 

Arjuna a écrit :

normal.
là tu mets pas la valeur de ton champs, mais son nom...
 
"... = " & "'" & Replace([Forms]![CPS_ProductSearch_5GroupProd]![PRODUCT_DESCRIPTION_form], "'", "''" ) & "'" & "..."


Excuses-moi mais j'ai pas compris ta remarque je crois..
![PRODUCT_DESCRIPTION_form] c'est une variable que je récupère dans mon formulaire, seulement je ne crois pas que VBA récupère celle-ci automatiquement comme le fait access..
 

betsamee a écrit :

soit dit en passant tu peux tres bien generer un excel a partir d une requete (deja enregistree dans tes requetes) depuis le VBA access avec la fonction  
DoCmd.TransferSpreadsheet acExport, , "nomrequete", "cheminfichierexcel.xls", False, ""


Non je peux pas faire ça, je dois faire une présentation assez complexe.

Message cité 1 fois
Message édité par Big-Foot le 21-07-2006 à 11:38:34
n°1410962
Arjuna
Aircraft Ident.: F-MBSD
Posté le 21-07-2006 à 11:39:06  profilanswer
 

tu mets un nom de variable VB (le champs) dans une chaîne de caractère (requête SQL). normal que ça ne marche pas. il faut mettre la valeur à la place.

mood
Publicité
Posté le 21-07-2006 à 11:39:06  profilanswer
 

n°1410974
betsamee
Asterisk Zeperyl
Posté le 21-07-2006 à 11:55:18  profilanswer
 

Arjuna a écrit :

t pas drôle :o


je sais [:petrus75]
 
 

Big-Foot a écrit :


Non je peux pas faire ça, je dois faire une présentation assez complexe.


tu as un moyen de mettre un modele de document excel quelque part je me rappelle plus exactement mais je sais que je le faisais

n°1411063
Big-Foot
Posté le 21-07-2006 à 13:29:38  profilanswer
 

Arjuna a écrit :

tu mets un nom de variable VB (le champs) dans une chaîne de caractère (requête SQL). normal que ça ne marche pas. il faut mettre la valeur à la place.


Ok mais pour récupérer cette variable du formulaire je fais comment sous vba ?
 

betsamee a écrit :

je sais [:petrus75]
 
tu as un moyen de mettre un modele de document excel quelque part je me rappelle plus exactement mais je sais que je le faisais


 
Ah? Ca c'est intéressant, tu peux m'en dire plus ?
Ce que j'ai fait moi, c'est que j'édite un document "template" avec ma méthode.

n°1411091
betsamee
Asterisk Zeperyl
Posté le 21-07-2006 à 13:53:33  profilanswer
 

Big-Foot a écrit :

Ok mais pour récupérer cette variable du formulaire je fais comment sous vba ?
 
 
 
Ah? Ca c'est intéressant, tu peux m'en dire plus ?
Ce que j'ai fait moi, c'est que j'édite un document "template" avec ma méthode.


je te repond dimanche je serais devant le code que j avais pondu

n°1413373
aenor
Posté le 25-07-2006 à 20:15:02  profilanswer
 

Pour utiliser ta requete directement enregistré, si y'a une valeur qui vient d'un formulaire, il faut utiliser des requetes paramétrées.
ex:
set rp = currentdb.querydefs("nomrequete" )
rp![[forms]![nomform]![nomchamp]]=[forms]![nomform]![nomchamp]
set req=rp.openrecordset

n°1415182
Big-Foot
Posté le 28-07-2006 à 12:53:02  profilanswer
 

aenor a écrit :

Pour utiliser ta requete directement enregistré, si y'a une valeur qui vient d'un formulaire, il faut utiliser des requetes paramétrées.
ex:
set rp = currentdb.querydefs("nomrequete" )
rp![[forms]![nomform]![nomchamp]]=[forms]![nomform]![nomchamp]
set req=rp.openrecordset


En fait en attendant j'ai un peu contourné le problème: j'ai transformer ma requête de selection,en une requête de création de table. Après je tape une requête de selection dans mon script et voilà.
Le seul problème c'est que j'ai des messages qui me signalent que je crée une table etc...
Mais bon ça passe, et les gens qui m'ont demandé ça n'y voit pas d'inconvenient.  [:airforceone]  
 
Mais merci pour la réponse! Ca va sûrement me servir une fois, et puis ça va probablement aussi dépanner des gens à la recherche de cette infos.

n°1418487
seniorpapo​u
Posté le 02-08-2006 à 18:46:05  profilanswer
 

Bonsoir,
une adrese pour les messages:
http://faq.vb.free.fr/index.php?question=78
Cordialement

n°1421777
aenor
Posté le 07-08-2006 à 18:44:19  profilanswer
 

Big-Foot a écrit :

En fait en attendant j'ai un peu contourné le problème: j'ai transformer ma requête de selection,en une requête de création de table. Après je tape une requête de selection dans mon script et voilà.
Le seul problème c'est que j'ai des messages qui me signalent que je crée une table etc...
Mais bon ça passe, et les gens qui m'ont demandé ça n'y voit pas d'inconvenient.  [:airforceone]  
 
Mais merci pour la réponse! Ca va sûrement me servir une fois, et puis ça va probablement aussi dépanner des gens à la recherche de cette infos.


 
pour enlever les messages : docmd.setwarnings false

n°1421886
Big-Foot
Posté le 07-08-2006 à 20:55:54  profilanswer
 

oki merci :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Access] VBA récuperer données requête

 

Sujets relatifs
Soucis avec requete sql et tri[Access] Comment insérer des objets dans un contrôle tab?
Requete Count() et affichage ASPRéquete sql champ date recuperer le MOIS
[Resolu] Type de control (VBA)Petit souci de requete et mysql_fetch_array
Modifier en VBA les options d'habillage d'une imageProbleme incompatibilite données acces/VBA [résolu]
Plus de sujets relatifs à : [Access] VBA récuperer données requête


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR