Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/07/2011, 10h17   #1
Membre habitué
 
Homme Mathieu R
Etudiant MIAGe
Inscription : février 2010
Messages : 145
Détails du profil
Informations personnelles :
Nom : Homme Mathieu R
Âge : 22
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Etudiant MIAGe
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2010
Messages : 145
Points : 141
Points : 141
Par défaut Affectation du resultat de DoCmd.OpenQuery

Bonjour à tous,

Dans mon module VBA, je fait appel à une requete réalisé avec l'assistant d'Access.

Je souhaite parcourir le Recordset suite à l'appel de la requete :

Code :
1
2
SelectionGenerale = DoCmd.OpenQuery "SelectionGen", , acReadOnly
Set SelectionGene = CurrentDb.OpenRecordset(SelectionGenerale)
Cependant, j'ai une erreur de compilation
Fonction ou variable attendu

En supprimant SelectionGenerale = je n'est plus l'erreur :
Code :
1
2
DoCmd.OpenQuery "SelectionGen", , acReadOnly
Set SelectionGene = CurrentDb.OpenRecordset(SelectionGenerale)
Cependant comment puis-je parcourir le recordset?

Je n'est pas vu dans la FAQ le moyen de le faire !

Merci d'avance !
__________________
Qui ne tente rien, ne tente rien !
Tydher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 10h29   #2
Membre actif
 
Inscription : décembre 2009
Messages : 204
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 204
Points : 186
Points : 186
Pour la première méthode, l'erreur vient du fait que l'instruction DoCmd.OpenQuery ne retourne pas de résultat.

Avec la deuxième méthode, la variable SelectionGenerale est vide.

Pour parcourir les enregistrements de ta requête tu peux faire comme ça :

Code :
1
2
3
4
5
6
7
With CurrendDb
    Set SelectionGene = .OpenRecordset(.QueryDefs("SelectionGen").SQL)
end With
While Not SelectionGene.EOF 
    Instructions
Wend
tarnx est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/07/2011, 10h33   #3
Membre habitué
 
Homme Mathieu R
Etudiant MIAGe
Inscription : février 2010
Messages : 145
Détails du profil
Informations personnelles :
Nom : Homme Mathieu R
Âge : 22
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Etudiant MIAGe
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2010
Messages : 145
Points : 141
Points : 141
Merci de ta réponse !

J'ai l'erreur :
Objet requis sur la ligne 2

Code :
1
2
3
With CurrendDb
    Set SelectionGene = .OpenRecordset(.QueryDefs("SelectionGen").SQL)
end With
__________________
Qui ne tente rien, ne tente rien !
Tydher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 10h59   #4
Membre habitué
 
Homme Mathieu R
Etudiant MIAGe
Inscription : février 2010
Messages : 145
Détails du profil
Informations personnelles :
Nom : Homme Mathieu R
Âge : 22
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Etudiant MIAGe
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2010
Messages : 145
Points : 141
Points : 141
J'ai trouvé d'où viens l'erreur.

Mauvaise déclaration de variable j'avais

Code :
Dim SelectionGene As Recordset
au lieu de

Code :
Dim SelectionGene As DAO.Recordset
Maintenant ton code est fonctionnel
J'ai aussi vu que :

Code :
Set SelectionGene = CurrentDb.OpenRecordset("SelectionGen")
fonctionne.

Merci beaucoup !
__________________
Qui ne tente rien, ne tente rien !
Tydher est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h11.


 
 
 
 
Partenaires

Hébergement Web