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

Requete parametrée

16 réponses
Avatar
jeje
Bonjour

J'ai un petit problème avec Excel :

Je récupère des données venant d'une base donnée Oracle que j'affiche sur
Excel, j'ai écrit ma requete dans Microsoft Querry qui se connecte a la base
Oracle et me renvoi les informations qui vont dans Excel.
Jusque la tout se passe bien.
Seulement maitenant, j'aimerais passer un paramètre dans cette requete, a
savoir un champ qui se trouve a coté de mon tableau ( un chiffre tout
bêtement), ceci afin que lorsque je change ce nombre, et que j'actualise ma
requete ce nombe soit pris en compte.
Mais voila, je ne rouve aucun moyen d'envoyer en paramètre une donnée a
Miscrosft Querry venant de Excel, en cherchant avec l'aide du logiciel, ils
me disent de selectionner (apres avoir fait un click droit sur le tableau)
l'option 'paramètres' mais je n'ai jamais pu selectionner cette derniere.....

Comment puis je passer cette donnée en paramètre à ma requete ?

D'avance merci pour vos précieuses réponses.
Bonne journée à tous.

6 réponses

1 2
Avatar
MichDenis
Tu as un petit exemple là : (je n'ai pas le temps d'élaborer
un environnement pour tester ce type de requête...!
Si tu trouves une solution avec MsQuery, ce serait gentil
de l'afficher ici.)

P.S.- As-tu essayer d'écrire ou de copier le texte de la requête
Union directement dans la fenêtre SQL de MsQuery ?

http://www.tek-tips.com/viewthread.cfm?qid81660&page=9

Et comme j'ai cru comprendre que tu travailles sur un critère de date,
je te donne un exemple comment utiliser un critère "Date"

'-----------------------------------------
Dim requête As String
Dim LaDate As Date

'2 Méthodes de renseigner la variable
'LaDate = CDate("01/09/2005")
'OU
LaDate = Feuil3.Range("A1")

'Attention, les dates vont passer dans le tordeur du format
'américain à cause des dièses... surprises possibles

requête = "SELECT `Feuil1$`.LesDates" & Chr(13) & "" & Chr(10) & _
"FROM `c:Requete_MsQuery_Date`.`Feuil1$` `Feuil1$`" & _
Chr(13) & "" & Chr(10) & _
"WHERE (`Feuil1$`.LesDates>#" & LaDate & "#)"
'-----------------------------------------

Bon travail.


"jeje" a écrit dans le message de news:

Merci j'ai pu avancer gràce a ceci.

Ma requete s'execute normalement lorsque je met une seule table ( sans UNION
avec une autre)
Mais lorsque je met une seconde table (en rajoutant une UNION donc)
j'obtient ce message d'erreur : Erreur d'execution 13 : incompatibilité de
type

j'ai l'impression que je doit choisir entre une requete avec union ou une
requete avec des parametres ..... :s
Avatar
jeje
Concernant la requete a metre dans MSQuery, dès quel comporte des Union je ne
peux plus l'afficher et donc plus mettre de parametres. ( MsQuery ne veut pas)

J'ai donc essayé ceci :
- J'ai copié la requete non parametré mais avec UNION qui marche dans MS
query et je l'ai mise dans mon champ de requete VBA
--->Resultat : meme erreur que avant : Erreur d'execution 13 :
incompatibilité de type.
J'en conclue donc que je ne peux pas mettre de Union dans mes requetes en
VBA....

MsQuerry veux bien des Unions mais alors pas de parametres
VBA veux bien ne parametres mais ne veux pas d'UNION ...

Je commence a croire qu'il va faloir trouver un autre moyen de résoudre ce
probleme....comme peut etre executer toute les requetes a la suite sans Union
(mais je n'ai aucune idée comment les faire se coller l'une a l'autre sans
que leurs données ne s'ecrasent entre elles)
Avatar
MichDenis
| Resultat : meme erreur que avant : Erreur d'execution 13

Une erreur de type 13 est habituellement un
mismatch entre le type déclaré de la variable
et le type de champ (données).



"jeje" a écrit dans le message de news:

Concernant la requete a metre dans MSQuery, dès quel comporte des Union je ne
peux plus l'afficher et donc plus mettre de parametres. ( MsQuery ne veut pas)

J'ai donc essayé ceci :
- J'ai copié la requete non parametré mais avec UNION qui marche dans MS
query et je l'ai mise dans mon champ de requete VBA
--->Resultat : meme erreur que avant : Erreur d'execution 13 :
incompatibilité de type.
J'en conclue donc que je ne peux pas mettre de Union dans mes requetes en
VBA....

MsQuerry veux bien des Unions mais alors pas de parametres
VBA veux bien ne parametres mais ne veux pas d'UNION ...

Je commence a croire qu'il va faloir trouver un autre moyen de résoudre ce
probleme....comme peut etre executer toute les requetes a la suite sans Union
(mais je n'ai aucune idée comment les faire se coller l'une a l'autre sans
que leurs données ne s'ecrasent entre elles)
Avatar
jeje
Oui j'ai cherché l'origine de l'erreur mais elle ne se produit que lorsqu'il
ya présence du mot "UNION" dans ma requete.

Voici une partie de ma requete , qui marche seulement lorsque j'enleve Union
et ce qui suis deriere.

.CommandText = Array("select 'NOMENCLATURE' ,'INTOBJ' , TMEMESSAGE
from tra_message where LANGUE = 'FR' and tmenumber IN( select distinct
obfnerr from intobj where trunc(obfdmaj) = trunc(sysdate)-1 ) union select
'FOURNISSEUR' ,'INTFOURN' , TMEMESSAGE from tra_message where LANGUE = 'FR'
and tmenumber IN( select distinct fofnerr from intfourn where
trunc(fofdmaj) = trunc(sysdate)-1 ) ")

Le -1 etant la 'future' variable a prendre en parametre.





| Resultat : meme erreur que avant : Erreur d'execution 13

Une erreur de type 13 est habituellement un
mismatch entre le type déclaré de la variable
et le type de champ (données).



"jeje" a écrit dans le message de news:

Concernant la requete a metre dans MSQuery, dès quel comporte des Union je ne
peux plus l'afficher et donc plus mettre de parametres. ( MsQuery ne veut pas)

J'ai donc essayé ceci :
- J'ai copié la requete non parametré mais avec UNION qui marche dans MS
query et je l'ai mise dans mon champ de requete VBA
--->Resultat : meme erreur que avant : Erreur d'execution 13 :
incompatibilité de type.
J'en conclue donc que je ne peux pas mettre de Union dans mes requetes en
VBA....

MsQuerry veux bien des Unions mais alors pas de parametres
VBA veux bien ne parametres mais ne veux pas d'UNION ...

Je commence a croire qu'il va faloir trouver un autre moyen de résoudre ce
probleme....comme peut etre executer toute les requetes a la suite sans Union
(mais je n'ai aucune idée comment les faire se coller l'une a l'autre sans
que leurs données ne s'ecrasent entre elles)





Avatar
MichDenis
As-tu posé la question sur le forum Access, il doit bien y avoir
quelques spécialistes en requête "Union" pour la syntaxe et qui
connaisse aussi Oracle.

Désolé, mais je n'ai plus d'autres suggestions ...!


"jeje" a écrit dans le message de news:

Oui j'ai cherché l'origine de l'erreur mais elle ne se produit que lorsqu'il
ya présence du mot "UNION" dans ma requete.

Voici une partie de ma requete , qui marche seulement lorsque j'enleve Union
et ce qui suis deriere.

.CommandText = Array("select 'NOMENCLATURE' ,'INTOBJ' , TMEMESSAGE
from tra_message where LANGUE = 'FR' and tmenumber IN( select distinct
obfnerr from intobj where trunc(obfdmaj) = trunc(sysdate)-1 ) union select
'FOURNISSEUR' ,'INTFOURN' , TMEMESSAGE from tra_message where LANGUE = 'FR'
and tmenumber IN( select distinct fofnerr from intfourn where
trunc(fofdmaj) = trunc(sysdate)-1 ) ")

Le -1 etant la 'future' variable a prendre en parametre.





| Resultat : meme erreur que avant : Erreur d'execution 13

Une erreur de type 13 est habituellement un
mismatch entre le type déclaré de la variable
et le type de champ (données).



"jeje" a écrit dans le message de news:

Concernant la requete a metre dans MSQuery, dès quel comporte des Union je ne
peux plus l'afficher et donc plus mettre de parametres. ( MsQuery ne veut pas)

J'ai donc essayé ceci :
- J'ai copié la requete non parametré mais avec UNION qui marche dans MS
query et je l'ai mise dans mon champ de requete VBA
--->Resultat : meme erreur que avant : Erreur d'execution 13 :
incompatibilité de type.
J'en conclue donc que je ne peux pas mettre de Union dans mes requetes en
VBA....

MsQuerry veux bien des Unions mais alors pas de parametres
VBA veux bien ne parametres mais ne veux pas d'UNION ...

Je commence a croire qu'il va faloir trouver un autre moyen de résoudre ce
probleme....comme peut etre executer toute les requetes a la suite sans Union
(mais je n'ai aucune idée comment les faire se coller l'une a l'autre sans
que leurs données ne s'ecrasent entre elles)





Avatar
jeje
Je pense avoir trouvé une solution de secour :
J'execute toute mes requetes sur la meme celule 1 par 1(donc sans union),
Excel insère automatiquement des colonnes ce qui va metre les resultats de
mes requetes cote a cote.
Je vais donc essayer de faire une macro qui prend les tableaux a coté et les
rajoutes en dessous du premier, de facon a obtenir le resultat comme si
j'avai tout executé en 1 seule requete...
C'est un sacré détour mais au moin j'obtiendrai ce que je veux ^_^

Encore merci de m'avoir aidé :)


As-tu posé la question sur le forum Access, il doit bien y avoir
quelques spécialistes en requête "Union" pour la syntaxe et qui
connaisse aussi Oracle.

Désolé, mais je n'ai plus d'autres suggestions ...!


"jeje" a écrit dans le message de news:

Oui j'ai cherché l'origine de l'erreur mais elle ne se produit que lorsqu'il
ya présence du mot "UNION" dans ma requete.

Voici une partie de ma requete , qui marche seulement lorsque j'enleve Union
et ce qui suis deriere.

.CommandText = Array("select 'NOMENCLATURE' ,'INTOBJ' , TMEMESSAGE
from tra_message where LANGUE = 'FR' and tmenumber IN( select distinct
obfnerr from intobj where trunc(obfdmaj) = trunc(sysdate)-1 ) union select
'FOURNISSEUR' ,'INTFOURN' , TMEMESSAGE from tra_message where LANGUE = 'FR'
and tmenumber IN( select distinct fofnerr from intfourn where
trunc(fofdmaj) = trunc(sysdate)-1 ) ")

Le -1 etant la 'future' variable a prendre en parametre.





| Resultat : meme erreur que avant : Erreur d'execution 13

Une erreur de type 13 est habituellement un
mismatch entre le type déclaré de la variable
et le type de champ (données).



"jeje" a écrit dans le message de news:

Concernant la requete a metre dans MSQuery, dès quel comporte des Union je ne
peux plus l'afficher et donc plus mettre de parametres. ( MsQuery ne veut pas)

J'ai donc essayé ceci :
- J'ai copié la requete non parametré mais avec UNION qui marche dans MS
query et je l'ai mise dans mon champ de requete VBA
--->Resultat : meme erreur que avant : Erreur d'execution 13 :
incompatibilité de type.
J'en conclue donc que je ne peux pas mettre de Union dans mes requetes en
VBA....

MsQuerry veux bien des Unions mais alors pas de parametres
VBA veux bien ne parametres mais ne veux pas d'UNION ...

Je commence a croire qu'il va faloir trouver un autre moyen de résoudre ce
probleme....comme peut etre executer toute les requetes a la suite sans Union
(mais je n'ai aucune idée comment les faire se coller l'une a l'autre sans
que leurs données ne s'ecrasent entre elles)










1 2