Bonjour,
J'ai un formulaire 1 bas=E9 sur une requ=EAte 1.
Ce formulaire 1 peux =EAtre ouvert par l'interm=E9diaire de 3=20
autres formulaires : A B et C.
Le probl=E8me est que le crit=E8re de la requ=EAte 1 est :
- un contr=F4le A du formulaire A si formulaire 1 a =E9t=E9=20
ouvert par le formulaire A
- un contr=F4le B du formulaire B si formulaire 1 a =E9t=E9=20
ouvert par le formulaire B
- un contr=F4le C du formulaire C si formulaire 1 a =E9t=E9=20
ouvert par le formulaire C
Je n'arrive pas =E0 =E9crire cela dans ma requ=EAte.
J'ai essay=E9 : crit=E8re =3D [Formulaires]![A]![contr=F4leA] OU=20
[Formulaires]![B]![contr=F4leB] OU [Formulaires]![C]!
[contr=F4leC], mais access recherche les 3 formulaires,=20
j'ai essay=E9 d'affecter la valeur de contr=F4leA, contr=F4leB=20
et contr=F4leC dans une variable, mais je n'arrive pas =E0=20
mettre cette variable en crit=E8re de requ=EAte.
Merci d'avance de votre aide.
Su les formulatires A B ou C ne peuvent pas être ouverts simultanéments, tu peux savoir lequel l'est en balayant la liste Forms du style
dim frm as form dim Ok as boolean
Okúlse for each frm in application.forms select case frm.name case "A": msgbox "c'est le A": Ok=True:exit for case "B":msgbox "C'est le B": Ok=True:exit for case "C":msgbox "C'est le C":Ok=true:exit for case else: end select next if not OK then msgbox "J'ai pas trouvé ... serait-ce un bug ???" end if
"ben" a écrit dans le message de news: 0f9601c4f6f0$69301800$ Bonjour, J'ai un formulaire 1 basé sur une requête 1. Ce formulaire 1 peux être ouvert par l'intermédiaire de 3 autres formulaires : A B et C. Le problème est que le critère de la requête 1 est : - un contrôle A du formulaire A si formulaire 1 a été ouvert par le formulaire A - un contrôle B du formulaire B si formulaire 1 a été ouvert par le formulaire B - un contrôle C du formulaire C si formulaire 1 a été ouvert par le formulaire C Je n'arrive pas à écrire cela dans ma requête. J'ai essayé : critère = [Formulaires]![A]![contrôleA] OU [Formulaires]![B]![contrôleB] OU [Formulaires]![C]! [contrôleC], mais access recherche les 3 formulaires, j'ai essayé d'affecter la valeur de contrôleA, contrôleB et contrôleC dans une variable, mais je n'arrive pas à mettre cette variable en critère de requête. Merci d'avance de votre aide.
Su les formulatires A B ou C ne peuvent pas être ouverts simultanéments, tu
peux savoir lequel l'est en balayant la liste Forms du style
dim frm as form
dim Ok as boolean
Okúlse
for each frm in application.forms
select case frm.name
case "A": msgbox "c'est le A": Ok=True:exit for
case "B":msgbox "C'est le B": Ok=True:exit for
case "C":msgbox "C'est le C":Ok=true:exit for
case else:
end select
next
if not OK then
msgbox "J'ai pas trouvé ... serait-ce un bug ???"
end if
"ben" <anonymous@discussions.microsoft.com> a écrit dans le message de news:
0f9601c4f6f0$69301800$a501280a@phx.gbl...
Bonjour,
J'ai un formulaire 1 basé sur une requête 1.
Ce formulaire 1 peux être ouvert par l'intermédiaire de 3
autres formulaires : A B et C.
Le problème est que le critère de la requête 1 est :
- un contrôle A du formulaire A si formulaire 1 a été
ouvert par le formulaire A
- un contrôle B du formulaire B si formulaire 1 a été
ouvert par le formulaire B
- un contrôle C du formulaire C si formulaire 1 a été
ouvert par le formulaire C
Je n'arrive pas à écrire cela dans ma requête.
J'ai essayé : critère = [Formulaires]![A]![contrôleA] OU
[Formulaires]![B]![contrôleB] OU [Formulaires]![C]!
[contrôleC], mais access recherche les 3 formulaires,
j'ai essayé d'affecter la valeur de contrôleA, contrôleB
et contrôleC dans une variable, mais je n'arrive pas à
mettre cette variable en critère de requête.
Merci d'avance de votre aide.
Su les formulatires A B ou C ne peuvent pas être ouverts simultanéments, tu peux savoir lequel l'est en balayant la liste Forms du style
dim frm as form dim Ok as boolean
Okúlse for each frm in application.forms select case frm.name case "A": msgbox "c'est le A": Ok=True:exit for case "B":msgbox "C'est le B": Ok=True:exit for case "C":msgbox "C'est le C":Ok=true:exit for case else: end select next if not OK then msgbox "J'ai pas trouvé ... serait-ce un bug ???" end if
"ben" a écrit dans le message de news: 0f9601c4f6f0$69301800$ Bonjour, J'ai un formulaire 1 basé sur une requête 1. Ce formulaire 1 peux être ouvert par l'intermédiaire de 3 autres formulaires : A B et C. Le problème est que le critère de la requête 1 est : - un contrôle A du formulaire A si formulaire 1 a été ouvert par le formulaire A - un contrôle B du formulaire B si formulaire 1 a été ouvert par le formulaire B - un contrôle C du formulaire C si formulaire 1 a été ouvert par le formulaire C Je n'arrive pas à écrire cela dans ma requête. J'ai essayé : critère = [Formulaires]![A]![contrôleA] OU [Formulaires]![B]![contrôleB] OU [Formulaires]![C]! [contrôleC], mais access recherche les 3 formulaires, j'ai essayé d'affecter la valeur de contrôleA, contrôleB et contrôleC dans une variable, mais je n'arrive pas à mettre cette variable en critère de requête. Merci d'avance de votre aide.
Eric
Bonjour Ben,
Une méthode, certainement à améliorer.
Dans ta requête (req1), sur le champ pour lequel il y a un critère, mettre n'importe quoi comme critere (dans l'exemple "Koi" - je suppose que le champ est alphanumérique). Sauver la requête.
La procédure suivante modifie le sql de la requête pour s'adapter au formulaire appelant le formulaire1.
Sur le bouton de chacun des formulaires FormA, FormB, Formc, le code suivant, sans oublier de changer le nom du controle :
(Charger la Référence Microsoft DAO Object Library 3.x)
Private Sub Commande3_Click() Dim qry As DAO.querydef, strSQL As String Dim strSQLOld As String Dim nomf As String, nomctl As String Set qry = CurrentDb.QueryDefs("req1") strSQL = qry.SQL 'on stocke le sql de départ pour le réaffecter à la fin strSQLOld = strSQL nomf = Me.Name: nomctl = "A" ' <--- à adapter B puis C 'on modifie le critère en utilisant le nom du formulaire et celui du controle strSQL = Replace(strSQL, "koi", "Formulaires![" & nomf & "]![" & nomctl & "]") 'on supprime les " de la chaine SQL strSQL = Replace(strSQL, """", "") qry.SQL = strSQL
On Error GoTo Err_Commande3_Click
Dim stDocName As String Dim stLinkCriteria As String
-- A+ Eric Lien à suivre : http://users.skynet.be/mpfa/
"ben" écrivait news:0f9601c4f6f0 $69301800$:
Bonjour, J'ai un formulaire 1 basé sur une requête 1. Ce formulaire 1 peux être ouvert par l'intermédiaire de 3 autres formulaires : A B et C. Le problème est que le critère de la requête 1 est : - un contrôle A du formulaire A si formulaire 1 a été ouvert par le formulaire A - un contrôle B du formulaire B si formulaire 1 a été ouvert par le formulaire B - un contrôle C du formulaire C si formulaire 1 a été ouvert par le formulaire C Je n'arrive pas à écrire cela dans ma requête. J'ai essayé : critère = [Formulaires]![A]![contrôleA] OU [Formulaires]![B]![contrôleB] OU [Formulaires]![C]! [contrôleC], mais access recherche les 3 formulaires, j'ai essayé d'affecter la valeur de contrôleA, contrôleB et contrôleC dans une variable, mais je n'arrive pas à mettre cette variable en critère de requête. Merci d'avance de votre aide.
Bonjour Ben,
Une méthode, certainement à améliorer.
Dans ta requête (req1), sur le champ pour lequel il y a un critère,
mettre n'importe quoi comme critere (dans l'exemple "Koi" - je suppose
que le champ est alphanumérique). Sauver la requête.
La procédure suivante modifie le sql de la requête pour s'adapter au
formulaire appelant le formulaire1.
Sur le bouton de chacun des formulaires FormA, FormB, Formc, le code
suivant, sans oublier de changer le nom du controle :
(Charger la Référence Microsoft DAO Object Library 3.x)
Private Sub Commande3_Click()
Dim qry As DAO.querydef, strSQL As String
Dim strSQLOld As String
Dim nomf As String, nomctl As String
Set qry = CurrentDb.QueryDefs("req1")
strSQL = qry.SQL
'on stocke le sql de départ pour le réaffecter à la fin
strSQLOld = strSQL
nomf = Me.Name: nomctl = "A" ' <--- à adapter B puis C
'on modifie le critère en utilisant le nom du formulaire et celui du
controle
strSQL = Replace(strSQL, "koi", "Formulaires![" & nomf & "]![" &
nomctl & "]")
'on supprime les " de la chaine SQL
strSQL = Replace(strSQL, """", "")
qry.SQL = strSQL
On Error GoTo Err_Commande3_Click
Dim stDocName As String
Dim stLinkCriteria As String
Bonjour,
J'ai un formulaire 1 basé sur une requête 1.
Ce formulaire 1 peux être ouvert par l'intermédiaire de 3
autres formulaires : A B et C.
Le problème est que le critère de la requête 1 est :
- un contrôle A du formulaire A si formulaire 1 a été
ouvert par le formulaire A
- un contrôle B du formulaire B si formulaire 1 a été
ouvert par le formulaire B
- un contrôle C du formulaire C si formulaire 1 a été
ouvert par le formulaire C
Je n'arrive pas à écrire cela dans ma requête.
J'ai essayé : critère = [Formulaires]![A]![contrôleA] OU
[Formulaires]![B]![contrôleB] OU [Formulaires]![C]!
[contrôleC], mais access recherche les 3 formulaires,
j'ai essayé d'affecter la valeur de contrôleA, contrôleB
et contrôleC dans une variable, mais je n'arrive pas à
mettre cette variable en critère de requête.
Merci d'avance de votre aide.
Dans ta requête (req1), sur le champ pour lequel il y a un critère, mettre n'importe quoi comme critere (dans l'exemple "Koi" - je suppose que le champ est alphanumérique). Sauver la requête.
La procédure suivante modifie le sql de la requête pour s'adapter au formulaire appelant le formulaire1.
Sur le bouton de chacun des formulaires FormA, FormB, Formc, le code suivant, sans oublier de changer le nom du controle :
(Charger la Référence Microsoft DAO Object Library 3.x)
Private Sub Commande3_Click() Dim qry As DAO.querydef, strSQL As String Dim strSQLOld As String Dim nomf As String, nomctl As String Set qry = CurrentDb.QueryDefs("req1") strSQL = qry.SQL 'on stocke le sql de départ pour le réaffecter à la fin strSQLOld = strSQL nomf = Me.Name: nomctl = "A" ' <--- à adapter B puis C 'on modifie le critère en utilisant le nom du formulaire et celui du controle strSQL = Replace(strSQL, "koi", "Formulaires![" & nomf & "]![" & nomctl & "]") 'on supprime les " de la chaine SQL strSQL = Replace(strSQL, """", "") qry.SQL = strSQL
On Error GoTo Err_Commande3_Click
Dim stDocName As String Dim stLinkCriteria As String
-- A+ Eric Lien à suivre : http://users.skynet.be/mpfa/
"ben" écrivait news:0f9601c4f6f0 $69301800$:
Bonjour, J'ai un formulaire 1 basé sur une requête 1. Ce formulaire 1 peux être ouvert par l'intermédiaire de 3 autres formulaires : A B et C. Le problème est que le critère de la requête 1 est : - un contrôle A du formulaire A si formulaire 1 a été ouvert par le formulaire A - un contrôle B du formulaire B si formulaire 1 a été ouvert par le formulaire B - un contrôle C du formulaire C si formulaire 1 a été ouvert par le formulaire C Je n'arrive pas à écrire cela dans ma requête. J'ai essayé : critère = [Formulaires]![A]![contrôleA] OU [Formulaires]![B]![contrôleB] OU [Formulaires]![C]! [contrôleC], mais access recherche les 3 formulaires, j'ai essayé d'affecter la valeur de contrôleA, contrôleB et contrôleC dans une variable, mais je n'arrive pas à mettre cette variable en critère de requête. Merci d'avance de votre aide.
ben
C'est exactement ce qu'il me fallait, merci. Ben
-----Message d'origine----- Su les formulatires A B ou C ne peuvent pas être ouverts simultanéments, tu
peux savoir lequel l'est en balayant la liste Forms du style
dim frm as form dim Ok as boolean
Okúlse for each frm in application.forms select case frm.name case "A": msgbox "c'est le A": Ok=True:exit for case "B":msgbox "C'est le B": Ok=True:exit for case "C":msgbox "C'est le C":Ok=true:exit for case else: end select next if not OK then msgbox "J'ai pas trouvé ... serait-ce un bug ???" end if
"ben" a écrit dans le message de news:
0f9601c4f6f0$69301800$ Bonjour, J'ai un formulaire 1 basé sur une requête 1. Ce formulaire 1 peux être ouvert par l'intermédiaire de 3 autres formulaires : A B et C. Le problème est que le critère de la requête 1 est : - un contrôle A du formulaire A si formulaire 1 a été ouvert par le formulaire A - un contrôle B du formulaire B si formulaire 1 a été ouvert par le formulaire B - un contrôle C du formulaire C si formulaire 1 a été ouvert par le formulaire C Je n'arrive pas à écrire cela dans ma requête. J'ai essayé : critère = [Formulaires]![A]![contrôleA] OU [Formulaires]![B]![contrôleB] OU [Formulaires]![C]! [contrôleC], mais access recherche les 3 formulaires, j'ai essayé d'affecter la valeur de contrôleA, contrôleB et contrôleC dans une variable, mais je n'arrive pas à mettre cette variable en critère de requête. Merci d'avance de votre aide.
.
C'est exactement ce qu'il me fallait, merci.
Ben
-----Message d'origine-----
Su les formulatires A B ou C ne peuvent pas être ouverts
simultanéments, tu
peux savoir lequel l'est en balayant la liste Forms du
style
dim frm as form
dim Ok as boolean
Ok=False
for each frm in application.forms
select case frm.name
case "A": msgbox "c'est le A": Ok=True:exit for
case "B":msgbox "C'est le B": Ok=True:exit for
case "C":msgbox "C'est le C":Ok=true:exit for
case else:
end select
next
if not OK then
msgbox "J'ai pas trouvé ... serait-ce un bug ???"
end if
"ben" <anonymous@discussions.microsoft.com> a écrit dans
le message de news:
0f9601c4f6f0$69301800$a501280a@phx.gbl...
Bonjour,
J'ai un formulaire 1 basé sur une requête 1.
Ce formulaire 1 peux être ouvert par l'intermédiaire de 3
autres formulaires : A B et C.
Le problème est que le critère de la requête 1 est :
- un contrôle A du formulaire A si formulaire 1 a été
ouvert par le formulaire A
- un contrôle B du formulaire B si formulaire 1 a été
ouvert par le formulaire B
- un contrôle C du formulaire C si formulaire 1 a été
ouvert par le formulaire C
Je n'arrive pas à écrire cela dans ma requête.
J'ai essayé : critère = [Formulaires]![A]![contrôleA] OU
[Formulaires]![B]![contrôleB] OU [Formulaires]![C]!
[contrôleC], mais access recherche les 3 formulaires,
j'ai essayé d'affecter la valeur de contrôleA, contrôleB
et contrôleC dans une variable, mais je n'arrive pas à
mettre cette variable en critère de requête.
Merci d'avance de votre aide.
-----Message d'origine----- Su les formulatires A B ou C ne peuvent pas être ouverts simultanéments, tu
peux savoir lequel l'est en balayant la liste Forms du style
dim frm as form dim Ok as boolean
Okúlse for each frm in application.forms select case frm.name case "A": msgbox "c'est le A": Ok=True:exit for case "B":msgbox "C'est le B": Ok=True:exit for case "C":msgbox "C'est le C":Ok=true:exit for case else: end select next if not OK then msgbox "J'ai pas trouvé ... serait-ce un bug ???" end if
"ben" a écrit dans le message de news:
0f9601c4f6f0$69301800$ Bonjour, J'ai un formulaire 1 basé sur une requête 1. Ce formulaire 1 peux être ouvert par l'intermédiaire de 3 autres formulaires : A B et C. Le problème est que le critère de la requête 1 est : - un contrôle A du formulaire A si formulaire 1 a été ouvert par le formulaire A - un contrôle B du formulaire B si formulaire 1 a été ouvert par le formulaire B - un contrôle C du formulaire C si formulaire 1 a été ouvert par le formulaire C Je n'arrive pas à écrire cela dans ma requête. J'ai essayé : critère = [Formulaires]![A]![contrôleA] OU [Formulaires]![B]![contrôleB] OU [Formulaires]![C]! [contrôleC], mais access recherche les 3 formulaires, j'ai essayé d'affecter la valeur de contrôleA, contrôleB et contrôleC dans une variable, mais je n'arrive pas à mettre cette variable en critère de requête. Merci d'avance de votre aide.