Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ACCESS pourquoi ça coince ?

6 réponses
Avatar
le Nordiste
Voici mon code (partiel)
Je suis en option expLicit

Requete_0 =3D Array("Q_FaCourante")

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


GroupeRequete =3D Array(Requete_0, Requete_1)


'LANCEMENT S=C9QUENTIEL DES REQU=CATES
For iGQ =3D 0 To UBound(GroupeRequete)
For iQ =3D 0 To UBound(GroupeRequete(iGQ)(iQ))
DoCmd.OpenQuery Requete_1(iQ)
Next iQ
Next iGQ


J'obtiens "incompatibilit=E9 de type =E0 la ligne : For iQ =3D 0 To UBound
(GroupeRequete(iGQ)(iQ))


merci d evotre aide

6 réponses

Avatar
Vincent Guichard
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
Avatar
le Nordiste
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.
Avatar
Vincent Guichard
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
Avatar
le Nordiste
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
Avatar
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(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
Avatar
le Nordiste
On 23 nov, 17:43, Vincent Guichard wrote:
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.