bonjour,
J'ai cr=E9e dans microsoft Query une requ=EAte Union (via=20
sql). Dans Microsoft query, ce genre de requ=EAte n'est pas=20
modifiable avec l'assistant requ=EAte. Elle n'est donc pas=20
repr=E9sentable graphiquement dans microsoft query.Peu=20
importe, car je fais mes modifs via la fen=EAtre SQL. Mon=20
probl=E8me r=E9side en fait en l'attribution de param=E8tres sur=20
certains champs de cette requ=EAte. J'arrive en fait =E0 lui=20
faire passer des crit=E8res du style "tel champs" =3D "telle=20
valeur". Mais il m'est impossible de passer un param=E8tre,=20
c'est =E0 dire un valeur variable qui sera red=E9finie par=20
l'utilisateur =E0 chaque appel de la requete. Et c'est l=E0 ou=20
je suis super =E9tonn=E9 car si je reproduis ma table dans=20
Access et que je reproduit la m=EAme requ=EAte union, j'arrive=20
alors (dans access) a faire passer des parametres. Quun=20
connait-il donc un moyen de faire passer des param=E8tres =E0=20
microsoft query??
Pour info, voici le style d'instruction que j'ai programm=E9=20
dans query :=20
J'ai une table MaOe contenant les champs N=B0SEm, N=B0Mois, N=B0
Trim, Matricule, LuA, et LuP
Je cr=E9e l'instruction sql suivante :=20
SELECT MaOe.N=B0Sem, MaOe.N=B0Mois, MaOe.N=B0Trim,=20
MaOe.Matricule, MaOe.LuA As [CodProj]
FROM MaOe
WHERE (MaOe.N=B0Sem=3D[])
UNION
ALL SELECT MaOe.N=B0Sem, MaOe.N=B0Mois, MaOe.N=B0Trim,=20
MaOe.Matricule, MaOe.LuP
FROM MaOe
WHERE (MaOe.N=B0Sem=3D[])
Si entre les crochets je place une valeur pour N=B0Sem (du=20
genre 02 ou 03...) ca fonctionne.
Si je place une valeur g=E9n=E9rique (%), query me dit=20
que "les param=E8tres sont interdits dans les requ=EAtes qui=20
ne peuvent etre repr=E9sent=E9es graphiquement".
Qqun a une id=E9e??
Merci d'avance :)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Cyrille,
Voici un exemple qui avait pour critère des dates saisi dans la feuille de calcul. Évidemment je ne l'ai pas testé pour savoir si dans une requête "Union" cela posait des difficultés particulières ... tu va me le dire ...;-))
'---------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range)
'il est pris pour acquis que G1, G2 contiennent des dates 'ET 'G1 est plus petit que G2 ... tu peux ajouter une gestion 'd'erreur le cas échéant....! ( pas défini ici ! )
If Target.Address = [G1].Address Or _ Target.Address = [G2].Address Then 'En supposant que ton QueryTable se situe 'sur la feuille "Feuil1" 'Plage de critère de tes dates : 'Date de début : "Feuil1!G1" 'Date de Fin : "Feuil1!G2"
Dim P1 As Parameter Dim P2 As Parameter
'utilise l'index ou le nom de la requête With Worksheets("Feuil1").QueryTables(1) Set P1 = .Parameters(1) Set P2 = .Parameters(2) P1.SetParam xlRange, Range("Feuil1!G1") P2.SetParam xlRange, Range("Feuil1!G2") .Refresh False End With End If
End Sub '----------------------------------------
Salutations!
"Cyrille" a écrit dans le message de news:1776301c44944$3a234410$ bonjour, J'ai crée dans microsoft Query une requête Union (via sql). Dans Microsoft query, ce genre de requête n'est pas modifiable avec l'assistant requête. Elle n'est donc pas représentable graphiquement dans microsoft query.Peu importe, car je fais mes modifs via la fenêtre SQL. Mon problème réside en fait en l'attribution de paramètres sur certains champs de cette requête. J'arrive en fait à lui faire passer des critères du style "tel champs" = "telle valeur". Mais il m'est impossible de passer un paramètre, c'est à dire un valeur variable qui sera redéfinie par l'utilisateur à chaque appel de la requete. Et c'est là ou je suis super étonné car si je reproduis ma table dans Access et que je reproduit la même requête union, j'arrive alors (dans access) a faire passer des parametres. Quun connait-il donc un moyen de faire passer des paramètres à microsoft query?? Pour info, voici le style d'instruction que j'ai programmé dans query : J'ai une table MaOe contenant les champs N°SEm, N°Mois, N° Trim, Matricule, LuA, et LuP Je crée l'instruction sql suivante :
SELECT MaOe.N°Sem, MaOe.N°Mois, MaOe.N°Trim, MaOe.Matricule, MaOe.LuA As [CodProj] FROM MaOe WHERE (MaOe.N°Sem=[]) UNION ALL SELECT MaOe.N°Sem, MaOe.N°Mois, MaOe.N°Trim, MaOe.Matricule, MaOe.LuP FROM MaOe WHERE (MaOe.N°Sem=[])
Si entre les crochets je place une valeur pour N°Sem (du genre 02 ou 03...) ca fonctionne. Si je place une valeur générique (%), query me dit que "les paramètres sont interdits dans les requêtes qui ne peuvent etre représentées graphiquement". Qqun a une idée?? Merci d'avance :)
Cyrille
Bonjour Cyrille,
Voici un exemple qui avait pour critère des dates saisi dans la feuille de calcul. Évidemment je ne l'ai pas testé pour
savoir si dans une requête "Union" cela posait des difficultés particulières ... tu va me le dire ...;-))
'----------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
'il est pris pour acquis que G1, G2 contiennent des dates
'ET
'G1 est plus petit que G2 ... tu peux ajouter une gestion
'd'erreur le cas échéant....! ( pas défini ici ! )
If Target.Address = [G1].Address Or _
Target.Address = [G2].Address Then
'En supposant que ton QueryTable se situe
'sur la feuille "Feuil1"
'Plage de critère de tes dates :
'Date de début : "Feuil1!G1"
'Date de Fin : "Feuil1!G2"
Dim P1 As Parameter
Dim P2 As Parameter
'utilise l'index ou le nom de la requête
With Worksheets("Feuil1").QueryTables(1)
Set P1 = .Parameters(1)
Set P2 = .Parameters(2)
P1.SetParam xlRange, Range("Feuil1!G1")
P2.SetParam xlRange, Range("Feuil1!G2")
.Refresh False
End With
End If
End Sub
'----------------------------------------
Salutations!
"Cyrille" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:1776301c44944$3a234410$a301280a@phx.gbl...
bonjour,
J'ai crée dans microsoft Query une requête Union (via
sql). Dans Microsoft query, ce genre de requête n'est pas
modifiable avec l'assistant requête. Elle n'est donc pas
représentable graphiquement dans microsoft query.Peu
importe, car je fais mes modifs via la fenêtre SQL. Mon
problème réside en fait en l'attribution de paramètres sur
certains champs de cette requête. J'arrive en fait à lui
faire passer des critères du style "tel champs" = "telle
valeur". Mais il m'est impossible de passer un paramètre,
c'est à dire un valeur variable qui sera redéfinie par
l'utilisateur à chaque appel de la requete. Et c'est là ou
je suis super étonné car si je reproduis ma table dans
Access et que je reproduit la même requête union, j'arrive
alors (dans access) a faire passer des parametres. Quun
connait-il donc un moyen de faire passer des paramètres à
microsoft query??
Pour info, voici le style d'instruction que j'ai programmé
dans query :
J'ai une table MaOe contenant les champs N°SEm, N°Mois, N°
Trim, Matricule, LuA, et LuP
Je crée l'instruction sql suivante :
SELECT MaOe.N°Sem, MaOe.N°Mois, MaOe.N°Trim,
MaOe.Matricule, MaOe.LuA As [CodProj]
FROM MaOe
WHERE (MaOe.N°Sem=[])
UNION
ALL SELECT MaOe.N°Sem, MaOe.N°Mois, MaOe.N°Trim,
MaOe.Matricule, MaOe.LuP
FROM MaOe
WHERE (MaOe.N°Sem=[])
Si entre les crochets je place une valeur pour N°Sem (du
genre 02 ou 03...) ca fonctionne.
Si je place une valeur générique (%), query me dit
que "les paramètres sont interdits dans les requêtes qui
ne peuvent etre représentées graphiquement".
Qqun a une idée??
Merci d'avance :)
Voici un exemple qui avait pour critère des dates saisi dans la feuille de calcul. Évidemment je ne l'ai pas testé pour savoir si dans une requête "Union" cela posait des difficultés particulières ... tu va me le dire ...;-))
'---------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range)
'il est pris pour acquis que G1, G2 contiennent des dates 'ET 'G1 est plus petit que G2 ... tu peux ajouter une gestion 'd'erreur le cas échéant....! ( pas défini ici ! )
If Target.Address = [G1].Address Or _ Target.Address = [G2].Address Then 'En supposant que ton QueryTable se situe 'sur la feuille "Feuil1" 'Plage de critère de tes dates : 'Date de début : "Feuil1!G1" 'Date de Fin : "Feuil1!G2"
Dim P1 As Parameter Dim P2 As Parameter
'utilise l'index ou le nom de la requête With Worksheets("Feuil1").QueryTables(1) Set P1 = .Parameters(1) Set P2 = .Parameters(2) P1.SetParam xlRange, Range("Feuil1!G1") P2.SetParam xlRange, Range("Feuil1!G2") .Refresh False End With End If
End Sub '----------------------------------------
Salutations!
"Cyrille" a écrit dans le message de news:1776301c44944$3a234410$ bonjour, J'ai crée dans microsoft Query une requête Union (via sql). Dans Microsoft query, ce genre de requête n'est pas modifiable avec l'assistant requête. Elle n'est donc pas représentable graphiquement dans microsoft query.Peu importe, car je fais mes modifs via la fenêtre SQL. Mon problème réside en fait en l'attribution de paramètres sur certains champs de cette requête. J'arrive en fait à lui faire passer des critères du style "tel champs" = "telle valeur". Mais il m'est impossible de passer un paramètre, c'est à dire un valeur variable qui sera redéfinie par l'utilisateur à chaque appel de la requete. Et c'est là ou je suis super étonné car si je reproduis ma table dans Access et que je reproduit la même requête union, j'arrive alors (dans access) a faire passer des parametres. Quun connait-il donc un moyen de faire passer des paramètres à microsoft query?? Pour info, voici le style d'instruction que j'ai programmé dans query : J'ai une table MaOe contenant les champs N°SEm, N°Mois, N° Trim, Matricule, LuA, et LuP Je crée l'instruction sql suivante :
SELECT MaOe.N°Sem, MaOe.N°Mois, MaOe.N°Trim, MaOe.Matricule, MaOe.LuA As [CodProj] FROM MaOe WHERE (MaOe.N°Sem=[]) UNION ALL SELECT MaOe.N°Sem, MaOe.N°Mois, MaOe.N°Trim, MaOe.Matricule, MaOe.LuP FROM MaOe WHERE (MaOe.N°Sem=[])
Si entre les crochets je place une valeur pour N°Sem (du genre 02 ou 03...) ca fonctionne. Si je place une valeur générique (%), query me dit que "les paramètres sont interdits dans les requêtes qui ne peuvent etre représentées graphiquement". Qqun a une idée?? Merci d'avance :)