ACCESS pourquoi ça coince ?

Le
le Nordiste
Voici mon code (partiel)
Je suis en option expLicit

Requete_0 = Array("Q_FaCourante")

Requete_1 = Array("Q_COM", _
"Q_CDE_AR", _
"Q_CDE_CR")


GroupeRequete = Array(Requete_0, Requete_1)


'LANCEMENT SÉQUENTIEL DES REQUÊTES
For iGQ = 0 To UBound(GroupeRequete)
For iQ = 0 To UBound(GroupeRequete(iGQ)(iQ))
DoCmd.OpenQuery Requete_1(iQ)
Next iQ
Next iGQ


J'obtiens "incompatibilité de type à la ligne : For iQ = 0 To UBound
(GroupeRequete(iGQ)(iQ))


merci d evotre aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Vincent Guichard
Le #20614041
le Nordiste a écrit :
J'obtiens "incompatibilité de type à la ligne : For iQ = 0 To UBo und
(GroupeRequete(iGQ)(iQ))



For iQ = 0 To UBound(GroupeRequete(iGQ))

GroupeRequete(iGQ)(iQ) n'est pas un Array.

Vincent Guichard
le Nordiste
Le #20614511
Merci Vincent

Comment faire alors pour parcourir l'ensemble des données des
Requete_0, requete_1 regroupées dans Grouperequete ?
Requete_0 = Array("Q_FaCourante")

Requete_1 = Array("Q_COM", _
"Q_CDE_AR", _
"Q_CDE_CR")

GroupeRequete = Array(Requete_0, Requete_1)

merci de ton aide.
Vincent Guichard
Le #20614921
le Nordiste a écrit :
Merci Vincent

Comment faire alors pour parcourir l'ensemble des données des
Requete_0, requete_1 regroupées dans Grouperequete ?
Requete_0 = Array("Q_FaCourante")

Requete_1 = Array("Q_COM", _
"Q_CDE_AR", _
"Q_CDE_CR")

GroupeRequete = Array(Requete_0, Requete_1)

merci de ton aide.



GroupeRequete est un tableau contenant deux tableaux, ce n'est pas un
tableau à deux dimensions, si c'est ce que tu cherches à avoir.

En particulier, tu n'auras pas un tableau ou tu peux croiser Requete_0
et Requete_1.

Enfin, dans ton code tu utilises Requete_1 lors de l'appel OpenQuery,
mais jamais Requete_0. (alors que dans un premiers temps tu parcours
Requete_0.

Je ne comprends pas très bien ce que tu veux faire(1), donc il y a
probablement une erreur de conception en plus de l'erreur de
programmation. Peux-tu décrire l'algorithme que tu souhaites appliquer ici?

Vincent Guichard

(1) c'est à dire que je vois plusieurs possibilités
le Nordiste
Le #20615051
Bonsoir et merci de consacrer de ton temps à mon Pb.

J'ai toute une série de requêtes access; mais peu importe dans le
fond.
Que je note dans des groupes différents R…_0, R…_1, etc…
Je désire lancer successivement toutes ces requètes.
c'est pourquoi je fais un GroupeRequete

Requete_0 = Array("Q_FaCourante")

Requete_1 = Array("Q_COM", _
"Q_CDE_AR", _
"Q_CDE_CR")

GroupeRequete = Array(Requete_0, Requete_1)

Ces divers "arrays" évoluant dans le temps par ajout ou retrait, d'ou
leur multiplicité.
Je désire lancer toutes les requètes en séquence.
C'est pourquoi je pensais pouvoir dans un premier temps parcourir le
GroupeRequete pour connaitre quel est le Requete_x à parcourir pour
ensuite lancer les requetes Q_xxxx.

quelque chiose comme :

POUR indexGR = 0 À UBound(GroupeRequete)
POUR indexR = 0 À UBound(GroupeRequete(requete_…))
lancer la requete GroupeRequete(indexGR)(indexR)
SUIVANT indexR
SUIVANT indexGr
Vincent Guichard
Le #20615311
le Nordiste a écrit :
[...] Je désire lancer toutes les requètes en séquence.
C'est pourquoi je pensais pouvoir dans un premier temps parcourir le
GroupeRequete pour connaitre quel est le Requete_x à parcourir pour
ensuite lancer les requetes Q_xxxx.


Ok

quelque chiose comme :

POUR indexGR = 0 À UBound(GroupeRequete)
POUR indexR = 0 À UBound(GroupeRequete(requete_…))
lancer la requete GroupeRequete(indexGR)(indexR)
SUIVANT indexR
SUIVANT indexGr



Ok. Donc tu sais ce qu'il faut faire, il faut juste que tu corriges les
erreurs d'inattention que tu as faites dans le code que tu as posté.

For iGQ = 0 To UBound(GroupeRequete)
For iQ = 0 To UBound(GroupeRequete(iGQ))
DoCmd.OpenQuery GroupeRequete(iGQ)(iQ)
Next iQ
Next iGQ

Vincent Guichard
le Nordiste
Le #20619391
On 23 nov, 17:43, Vincent Guichard
le Nordiste a écrit :>[...] Je désire lancer toutes les requètes en séquence.
> C'est pourquoi je pensais pouvoir dans un premier temps parcourir le
> GroupeRequete pour connaitre quel est le Requete_x à parcourir pour
> ensuite lancer les requetes Q_xxxx.

Ok

> quelque chiose comme :

> POUR indexGR = 0 À UBound(GroupeRequete)
>           POUR indexR = 0 À  UBound(GroupeRequete(reque te_…))
>                       lancer la requete GroupeReq uete(indexGR)(indexR)
>           SUIVANT indexR
> SUIVANT indexGr

Ok. Donc tu sais ce qu'il faut faire, il faut juste que tu corriges les
erreurs d'inattention que tu as faites dans le code que tu as posté.

For iGQ = 0 To UBound(GroupeRequete)
     For iQ = 0 To UBound(GroupeRequete(iGQ))
       DoCmd.OpenQuery GroupeRequete(iGQ)(iQ)
    Next iQ
Next iGQ

Vincent Guichard



Bonjour Vincent,

Tu as bien cerné le Pb : un défaut d'attention, c'est dur de réfléc hir
sereinement dans un open-space bruyant
( synonyme : cour de récréation non ?)

Merci de ton coup de pouce pédagogique.
Publicité
Poster une réponse
Anonyme