|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : mars 2010 Messages : 130 ![]() |
Bonjour,
je voudrais récupérer dans mon code vba les données trouvées par une requete générérée en Access (2003). Je veux balayer ligne après ligne et récupérer certaines valeurs de certains champ. Quelqu'un peut m'indiquer comment faire ? Je précise que je n'y connais que très peu en SQL (j'attends une micro formation) Merci Taiby |
|
|
00
|
|
|
#2 | ||
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 479 ![]() |
La bonne nouvelle c'est avec Access tu n'as pas besoin de t'y connaître en SQL. Grâce à l'outil de conception de requête tu peux faire des requêtes très complexes sans même savoir ce que SELECT signifie :-).
Bon, on s'entend que cela aide quand même d'être capable de lire du SQL. À part cela voici un bout de code VBA qui fait ce que tu demandes : Code :
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
||
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : mars 2010 Messages : 130 ![]() |
Merci pour ton coup de main, je viens de copier le code que tu m'as fourni et adapté à mon besoin (juste en changeant le NomTaSource et NomTonChamp) mais j'ai une erreur lors de l'exécution :
Type défini par l'utilisateur non défini sur r As doa.Recordset |
|
|
00
|
|
|
#4 |
![]() ![]() Jean BALLATInscription : octobre 2004 Messages : 2 856 ![]() |
![]() Il te faut ajouter dans les références (sous VBE, dans le menu Outils) l'appel à la bibliothèque Microsoft DAO 3.6. Pour plus d'informations sur DAO, voici un tuto intéressant à consulter : Définition et manipulation de données avec DAO Bonne lecture
__________________
Jeannot Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
|
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : mars 2010 Messages : 130 ![]() |
Cette référence est déjà cochée
|
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : mars 2010 Messages : 130 ![]() |
Je viens de trouver le problème, marot_r a écrit "doa" dans son code au lieu de "dao".
Bon cela ne marche toujours pas, j'ai un autre soucis mais je vais chercher un peu avant d'en parler ici. |
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : mars 2010 Messages : 130 ![]() |
Quand je mets un nom d'une de mes tables cela fonctionne très bien, je récupère toutes les données voulues dans la boucle, mais lorsque je mets le nom de ma requet j'ai le message d'erreur suivant "trop peu de paramètres, 1 attendu".
C'est une requete qui demande un numéro lors de son ouverture, vous pensez que cela vient de là et qu'il faudrait rajouter un élément derrière mon nom de requete ? |
|
|
00
|
|
|
#8 |
![]() ![]() Jean BALLATInscription : octobre 2004 Messages : 2 856 ![]() |
Re,
Tu as mis le doigt sur le problème. En effet, si ta requête attend une valeur à l'exécution, il faut que celle-ci soit connue avant l'exécution. Tu peux remplacer le nom de ta requete par la syntaxe SQL de celle-ci. Tu pourras donc intervenir sur la clause WHERE Tu peux récupérer le code SQL pr un copier/coller (voir le tuto : Créer une Requete)
__________________
Jeannot Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
|
|
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : mars 2010 Messages : 130 ![]() |
Mais je ne comprends pas, ma requete est déjà exécutée lorsque mon code intervient. En fait ce que je veux faire c'est récupérer les données affichées par ma requete.
Je dit cela sans savoir si c'est possible, peut-être que je prends le problème à l'envers ? |
|
|
00
|
|
|
#10 |
![]() ![]() Jean BALLATInscription : octobre 2004 Messages : 2 856 ![]() |
Re,
Dans ce cas, tu peux mettre ta requete en tant que source d'un formulaire ou un état et tu visualiseras tous les enregistrements.
__________________
Jeannot Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
|
|
|
00
|
|
|
#11 |
|
Nouveau Membre du Club
![]() Inscription : mars 2010 Messages : 130 ![]() |
Désolé si j'ai "la comprenette" difficile mais je ne veux pas visualiser mes résultats, ils sont déjà visibles dans un formulaire, ce que je veux c'est écrire le code qui va bien pour récupérer les données affichées dans ce formulaire par la requette. Je veux pouvoir récupérer le champs "bidule" de la ligne dont le champ "numéro" est 3 par exemple...
|
|
|
00
|
|
|
#12 | |||||
![]() ![]() Jean BALLATInscription : octobre 2004 Messages : 2 856 ![]() |
![]() Puisque les données sont déjà affichées dans le formulaire, tu peux relire les enregistrements grace à : Voici ce qu'en dit Citation:
Code :
Bonne continuation
__________________
Jeannot Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
|
|||||
|
|
00
|
|
|
#13 |
|
Nouveau Membre du Club
![]() Inscription : mars 2010 Messages : 130 ![]() |
Merci Jeannot, je suis en congés aujourd'hui mais j'essaie cela demain à l'aube
|
|
|
00
|
|
|
#14 | |||
|
Nouveau Membre du Club
![]() Inscription : mars 2010 Messages : 130 ![]() |
J'ai adapté rapidement le code dans mon vba :
Code VBA :
Mais l'orsque je l'exécute (par appui sur un bouton Btn_copie_plan) alors que le résultat de ma requete affichée dans un formulaire est à l'écran j'ai cette alerte : Citation:
|
|||
|
|
00
|
|
|
#15 | ||
![]() ![]() Jean BALLATInscription : octobre 2004 Messages : 2 856 ![]() |
![]() Les données sont -elles affichées dans un Sous-Formulaire ? Si oui, l'appel du Recorset doit se faire sur le sous formulaire Code VBA :
Sinon, je n'ai pas d'erreur en testant ta procédure
__________________
Jeannot Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
|
||
|
|
00
|
|
|
#16 | |
|
Nouveau Membre du Club
![]() Inscription : mars 2010 Messages : 130 ![]() |
Effectivement, il y a bien un sous-formulaire !
j'ai modifié le code comme ceci : Citation:
je ne sais pas si je vais m'en sortir |
|
|
|
00
|
|
|
#17 |
|
Nouveau Membre du Club
![]() Inscription : mars 2010 Messages : 130 ![]() |
Pour en finir j'ai abandonné l'idée de récupérer mes données depuis un formulaire affiché. J'utilise à la place un outils paramètrable (vsFlex 3.0) qui permet d'afficher les données dans un formulaire cellule par cellule et donc de relir ces cellules sans soucis.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com