Appeler une procedure qui se trouve dans un module à prtir d'un autre module pour eviter les taches repetitives
3 réponses
francisco
Bonjour tout le monde
Execusez moi je repose d'une autre manière ma question car j'ai du mal à
expliquer clairement ce que je veux faire j'espere que sous cette angle je
sois plus clair
Comment faire pour appeler une requete qui se trouve dans un module distinct
à partir d'un autre module .Le module ou se trouve la requête Rsql
s'appelle ModRequête et la procedure Sub Requête () .
L'endroit à partir duquel je dois appeler cette requête est Le module
ModConnexion et la procedure se denomme Sub Connexion ()
Mon objectif final est de pouvoir isoler ma requete Rsql dans un autre
module de manière à pouvoir l'utiliser dans plusieurs procedures en meme
temps sans etre tout le temps entrain de la reecrire.
Vous trouverez en dessous le code
Amicalement Francisco
Merci pour votre aide
________________________________________
ModRequête
'_________________________________________
Public Rsql As String
__________________________________________
Sub requête()
Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume,
Ventes1999.AverageExMill ," _
& " Ventes1999.VariablesCosts, Ventes1999.FixedCosts,
Ventes1999.TonnesHeures FROM Ventes1999 " _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "' and
(Ventes1999.CodeConditionnement)= '" & CritereConditionnement & "' and
(Ventes1999.PM) = '" & CriterePM & "'and Ventes1999.CodeCouleur= '" &
CritereCouleur & "'and Ventes1999.Volume >" & Replace(CritereVolume, ",",
".") & " );"
End Sub
'_______________________________________________
ModConnexion
'______________________________________________
ce code provient d'un module appelé ModConnexion
Sub Connexion()
Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rst1 As New ADODB.Recordset
Dim i As Integer
Dim Rsql As String
'----------------------------------------------------
'à ouvrir une seule fois
cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=
c:\psm_analyse_formulaire.mdb ;"
'------------------------------------------------------------
'Alimentation CODEPRODUCT
'------------------------------------------------------------
rst.Open Rsql, cnt
Columns("A").Clear
Range("a4") = "Type de produit"
Range("a4").Font.Bold = True
i = 4
While Not rst.EOF
i = i + 1
Sheets("Feuil1").Range("A" & i).Value = rst!CodeProduct
rst.MoveNext
Wend
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
E KERGRESSE
Salut Francisco,
Je ne réalise pas souvent de requêtes sur des bases de données, je ne pourrai donc pas t'aider sur l'ensemble de ton code, mais quelques remarques sur ce que j'ai vu.
L'organisation en module n'a pas beaucoup d'importance dès lors que tes variables utilisées de module en module sont déclarées public comme tu l'as fait ici pour Rsql.
Par contre tu ne peux pas déclarer la même variable Rsql dans ta procédure Sub Connexion() en Dim Rsql car c'est c'est cette dernière qui contiendra le résultat de ta requête, comme tu as limité la portée de la variable en la déclarant dans la procédure, tu perds son contenu quand la procédure est finie.
Il te suffit donc de ne pas déclarer Rsql dans Sub Connexion().
Cordialement.
"francisco" a écrit dans le message de news: c6t5jf$4c1$
Bonjour tout le monde Execusez moi je repose d'une autre manière ma question car j'ai du mal à expliquer clairement ce que je veux faire j'espere que sous cette angle je sois plus clair Comment faire pour appeler une requete qui se trouve dans un module distinct
à partir d'un autre module .Le module ou se trouve la requête Rsql s'appelle ModRequête et la procedure Sub Requête () . L'endroit à partir duquel je dois appeler cette requête est Le module ModConnexion et la procedure se denomme Sub Connexion () Mon objectif final est de pouvoir isoler ma requete Rsql dans un autre module de manière à pouvoir l'utiliser dans plusieurs procedures en meme temps sans etre tout le temps entrain de la reecrire. Vous trouverez en dessous le code Amicalement Francisco Merci pour votre aide ________________________________________ ModRequête '_________________________________________ Public Rsql As String __________________________________________ Sub requête() Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct, Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _ & " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume, Ventes1999.AverageExMill ," _ & " Ventes1999.VariablesCosts, Ventes1999.FixedCosts, Ventes1999.TonnesHeures FROM Ventes1999 " _ & "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "' and
End Sub '_______________________________________________ ModConnexion '______________________________________________ ce code provient d'un module appelé ModConnexion Sub Connexion() Dim cnt As New ADODB.Connection Dim rst As New ADODB.Recordset Dim rst1 As New ADODB.Recordset Dim i As Integer Dim Rsql As String
CritereCodeProduct = FrmSaisie.CboListeCodeProduct.Value CritereConditionnement = FrmSaisie.CboListeConditionnement.Value CriterePM = FrmSaisie.CboListePM.Value CritereCouleur = FrmSaisie.CboListeCouleur.Value CritereVolume = FrmSaisie.CboListeVolume.Value ___________________________________ 'Que doids je mettre ici à la place de Rsql __________________________________ Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct, Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _ & " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume, Ventes1999.AverageExMill ," _ & " Ventes1999.VariablesCosts, Ventes1999.FixedCosts, Ventes1999.TonnesHeures FROM Ventes1999 " _ & "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "' and
'---------------------------------------------------- 'à ouvrir une seule fois cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source > c:psm_analyse_formulaire.mdb ;" '------------------------------------------------------------ 'Alimentation CODEPRODUCT '------------------------------------------------------------
rst.Open Rsql, cnt
Columns("A").Clear Range("a4") = "Type de produit" Range("a4").Font.Bold = True i = 4 While Not rst.EOF i = i + 1 Sheets("Feuil1").Range("A" & i).Value = rst!CodeProduct rst.MoveNext Wend
rst.Close Set rst = Nothing End Sub
Salut Francisco,
Je ne réalise pas souvent de requêtes sur des bases de données, je ne
pourrai donc pas t'aider sur l'ensemble de ton code, mais quelques remarques
sur ce que j'ai vu.
L'organisation en module n'a pas beaucoup d'importance dès lors que tes
variables utilisées de module en module sont déclarées public comme tu l'as
fait ici pour Rsql.
Par contre tu ne peux pas déclarer la même variable Rsql dans ta procédure
Sub Connexion() en Dim Rsql car c'est c'est cette dernière qui contiendra le
résultat de ta requête, comme tu as limité la portée de la variable en la
déclarant dans la procédure, tu perds son contenu quand la procédure est
finie.
Il te suffit donc de ne pas déclarer Rsql dans Sub Connexion().
Cordialement.
"francisco" <malabar@wanadoo.fr> a écrit dans le message de news:
c6t5jf$4c1$1@news-reader1.wanadoo.fr...
Bonjour tout le monde
Execusez moi je repose d'une autre manière ma question car j'ai du mal à
expliquer clairement ce que je veux faire j'espere que sous cette angle je
sois plus clair
Comment faire pour appeler une requete qui se trouve dans un module
distinct
à partir d'un autre module .Le module ou se trouve la requête Rsql
s'appelle ModRequête et la procedure Sub Requête () .
L'endroit à partir duquel je dois appeler cette requête est Le module
ModConnexion et la procedure se denomme Sub Connexion ()
Mon objectif final est de pouvoir isoler ma requete Rsql dans un autre
module de manière à pouvoir l'utiliser dans plusieurs procedures en meme
temps sans etre tout le temps entrain de la reecrire.
Vous trouverez en dessous le code
Amicalement Francisco
Merci pour votre aide
________________________________________
ModRequête
'_________________________________________
Public Rsql As String
__________________________________________
Sub requête()
Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume,
Ventes1999.AverageExMill ," _
& " Ventes1999.VariablesCosts, Ventes1999.FixedCosts,
Ventes1999.TonnesHeures FROM Ventes1999 " _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "'
and
End Sub
'_______________________________________________
ModConnexion
'______________________________________________
ce code provient d'un module appelé ModConnexion
Sub Connexion()
Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rst1 As New ADODB.Recordset
Dim i As Integer
Dim Rsql As String
CritereCodeProduct = FrmSaisie.CboListeCodeProduct.Value
CritereConditionnement = FrmSaisie.CboListeConditionnement.Value
CriterePM = FrmSaisie.CboListePM.Value
CritereCouleur = FrmSaisie.CboListeCouleur.Value
CritereVolume = FrmSaisie.CboListeVolume.Value
___________________________________
'Que doids je mettre ici à la place de Rsql
__________________________________
Rsql = "Select Ventes1999.CodeProduct,
Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume,
Ventes1999.AverageExMill ," _
& " Ventes1999.VariablesCosts, Ventes1999.FixedCosts,
Ventes1999.TonnesHeures FROM Ventes1999 " _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "'
and
'----------------------------------------------------
'à ouvrir une seule fois
cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source > c:psm_analyse_formulaire.mdb ;"
'------------------------------------------------------------
'Alimentation CODEPRODUCT
'------------------------------------------------------------
rst.Open Rsql, cnt
Columns("A").Clear
Range("a4") = "Type de produit"
Range("a4").Font.Bold = True
i = 4
While Not rst.EOF
i = i + 1
Sheets("Feuil1").Range("A" & i).Value = rst!CodeProduct
rst.MoveNext
Wend
Je ne réalise pas souvent de requêtes sur des bases de données, je ne pourrai donc pas t'aider sur l'ensemble de ton code, mais quelques remarques sur ce que j'ai vu.
L'organisation en module n'a pas beaucoup d'importance dès lors que tes variables utilisées de module en module sont déclarées public comme tu l'as fait ici pour Rsql.
Par contre tu ne peux pas déclarer la même variable Rsql dans ta procédure Sub Connexion() en Dim Rsql car c'est c'est cette dernière qui contiendra le résultat de ta requête, comme tu as limité la portée de la variable en la déclarant dans la procédure, tu perds son contenu quand la procédure est finie.
Il te suffit donc de ne pas déclarer Rsql dans Sub Connexion().
Cordialement.
"francisco" a écrit dans le message de news: c6t5jf$4c1$
Bonjour tout le monde Execusez moi je repose d'une autre manière ma question car j'ai du mal à expliquer clairement ce que je veux faire j'espere que sous cette angle je sois plus clair Comment faire pour appeler une requete qui se trouve dans un module distinct
à partir d'un autre module .Le module ou se trouve la requête Rsql s'appelle ModRequête et la procedure Sub Requête () . L'endroit à partir duquel je dois appeler cette requête est Le module ModConnexion et la procedure se denomme Sub Connexion () Mon objectif final est de pouvoir isoler ma requete Rsql dans un autre module de manière à pouvoir l'utiliser dans plusieurs procedures en meme temps sans etre tout le temps entrain de la reecrire. Vous trouverez en dessous le code Amicalement Francisco Merci pour votre aide ________________________________________ ModRequête '_________________________________________ Public Rsql As String __________________________________________ Sub requête() Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct, Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _ & " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume, Ventes1999.AverageExMill ," _ & " Ventes1999.VariablesCosts, Ventes1999.FixedCosts, Ventes1999.TonnesHeures FROM Ventes1999 " _ & "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "' and
End Sub '_______________________________________________ ModConnexion '______________________________________________ ce code provient d'un module appelé ModConnexion Sub Connexion() Dim cnt As New ADODB.Connection Dim rst As New ADODB.Recordset Dim rst1 As New ADODB.Recordset Dim i As Integer Dim Rsql As String
CritereCodeProduct = FrmSaisie.CboListeCodeProduct.Value CritereConditionnement = FrmSaisie.CboListeConditionnement.Value CriterePM = FrmSaisie.CboListePM.Value CritereCouleur = FrmSaisie.CboListeCouleur.Value CritereVolume = FrmSaisie.CboListeVolume.Value ___________________________________ 'Que doids je mettre ici à la place de Rsql __________________________________ Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct, Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _ & " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume, Ventes1999.AverageExMill ," _ & " Ventes1999.VariablesCosts, Ventes1999.FixedCosts, Ventes1999.TonnesHeures FROM Ventes1999 " _ & "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "' and
'---------------------------------------------------- 'à ouvrir une seule fois cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source > c:psm_analyse_formulaire.mdb ;" '------------------------------------------------------------ 'Alimentation CODEPRODUCT '------------------------------------------------------------
rst.Open Rsql, cnt
Columns("A").Clear Range("a4") = "Type de produit" Range("a4").Font.Bold = True i = 4 While Not rst.EOF i = i + 1 Sheets("Feuil1").Range("A" & i).Value = rst!CodeProduct rst.MoveNext Wend
rst.Close Set rst = Nothing End Sub
Thierry Euzenot
Heu deux solutions à mon avis :
1) Dans ta procédure Sub Connexion() tu fais tout simplement un Call Requête(arg1, arg2, arg3, etc.) Où arg1, arg2, arg3, etc. sont les arguments qui te servent à définir ta requête.
2) Ta procédure Requête() ressemble plus à une fonction qu'à une procédure non ? Heu là par contre les fonctions et moi on est plutôt fachés je pourrais pas t'expliquer :o(
J'espère avoir répondu à ta question ^^
"francisco" a écrit dans le message de news:c6t5jf$4c1$
Bonjour tout le monde Execusez moi je repose d'une autre manière ma question car j'ai du mal à expliquer clairement ce que je veux faire j'espere que sous cette angle je sois plus clair Comment faire pour appeler une requete qui se trouve dans un module distinct
à partir d'un autre module .Le module ou se trouve la requête Rsql s'appelle ModRequête et la procedure Sub Requête () . L'endroit à partir duquel je dois appeler cette requête est Le module ModConnexion et la procedure se denomme Sub Connexion () Mon objectif final est de pouvoir isoler ma requete Rsql dans un autre module de manière à pouvoir l'utiliser dans plusieurs procedures en meme temps sans etre tout le temps entrain de la reecrire. Vous trouverez en dessous le code Amicalement Francisco Merci pour votre aide ________________________________________ ModRequête '_________________________________________ Public Rsql As String __________________________________________ Sub requête() Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct, Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _ & " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume, Ventes1999.AverageExMill ," _ & " Ventes1999.VariablesCosts, Ventes1999.FixedCosts, Ventes1999.TonnesHeures FROM Ventes1999 " _ & "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "' and
End Sub '_______________________________________________ ModConnexion '______________________________________________ ce code provient d'un module appelé ModConnexion Sub Connexion() Dim cnt As New ADODB.Connection Dim rst As New ADODB.Recordset Dim rst1 As New ADODB.Recordset Dim i As Integer Dim Rsql As String
CritereCodeProduct = FrmSaisie.CboListeCodeProduct.Value CritereConditionnement = FrmSaisie.CboListeConditionnement.Value CriterePM = FrmSaisie.CboListePM.Value CritereCouleur = FrmSaisie.CboListeCouleur.Value CritereVolume = FrmSaisie.CboListeVolume.Value ___________________________________ 'Que doids je mettre ici à la place de Rsql __________________________________ Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct, Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _ & " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume, Ventes1999.AverageExMill ," _ & " Ventes1999.VariablesCosts, Ventes1999.FixedCosts, Ventes1999.TonnesHeures FROM Ventes1999 " _ & "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "' and
'---------------------------------------------------- 'à ouvrir une seule fois cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source > c:psm_analyse_formulaire.mdb ;" '------------------------------------------------------------ 'Alimentation CODEPRODUCT '------------------------------------------------------------
rst.Open Rsql, cnt
Columns("A").Clear Range("a4") = "Type de produit" Range("a4").Font.Bold = True i = 4 While Not rst.EOF i = i + 1 Sheets("Feuil1").Range("A" & i).Value = rst!CodeProduct rst.MoveNext Wend
rst.Close Set rst = Nothing End Sub
Heu deux solutions à mon avis :
1) Dans ta procédure Sub Connexion() tu fais tout simplement un Call
Requête(arg1, arg2, arg3, etc.)
Où arg1, arg2, arg3, etc. sont les arguments qui te servent à définir ta
requête.
2) Ta procédure Requête() ressemble plus à une fonction qu'à une procédure
non ?
Heu là par contre les fonctions et moi on est plutôt fachés je pourrais pas
t'expliquer :o(
J'espère avoir répondu à ta question ^^
"francisco" <malabar@wanadoo.fr> a écrit dans le message de
news:c6t5jf$4c1$1@news-reader1.wanadoo.fr...
Bonjour tout le monde
Execusez moi je repose d'une autre manière ma question car j'ai du mal à
expliquer clairement ce que je veux faire j'espere que sous cette angle je
sois plus clair
Comment faire pour appeler une requete qui se trouve dans un module
distinct
à partir d'un autre module .Le module ou se trouve la requête Rsql
s'appelle ModRequête et la procedure Sub Requête () .
L'endroit à partir duquel je dois appeler cette requête est Le module
ModConnexion et la procedure se denomme Sub Connexion ()
Mon objectif final est de pouvoir isoler ma requete Rsql dans un autre
module de manière à pouvoir l'utiliser dans plusieurs procedures en meme
temps sans etre tout le temps entrain de la reecrire.
Vous trouverez en dessous le code
Amicalement Francisco
Merci pour votre aide
________________________________________
ModRequête
'_________________________________________
Public Rsql As String
__________________________________________
Sub requête()
Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume,
Ventes1999.AverageExMill ," _
& " Ventes1999.VariablesCosts, Ventes1999.FixedCosts,
Ventes1999.TonnesHeures FROM Ventes1999 " _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "'
and
End Sub
'_______________________________________________
ModConnexion
'______________________________________________
ce code provient d'un module appelé ModConnexion
Sub Connexion()
Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rst1 As New ADODB.Recordset
Dim i As Integer
Dim Rsql As String
CritereCodeProduct = FrmSaisie.CboListeCodeProduct.Value
CritereConditionnement = FrmSaisie.CboListeConditionnement.Value
CriterePM = FrmSaisie.CboListePM.Value
CritereCouleur = FrmSaisie.CboListeCouleur.Value
CritereVolume = FrmSaisie.CboListeVolume.Value
___________________________________
'Que doids je mettre ici à la place de Rsql
__________________________________
Rsql = "Select Ventes1999.CodeProduct,
Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume,
Ventes1999.AverageExMill ," _
& " Ventes1999.VariablesCosts, Ventes1999.FixedCosts,
Ventes1999.TonnesHeures FROM Ventes1999 " _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "'
and
'----------------------------------------------------
'à ouvrir une seule fois
cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source > c:psm_analyse_formulaire.mdb ;"
'------------------------------------------------------------
'Alimentation CODEPRODUCT
'------------------------------------------------------------
rst.Open Rsql, cnt
Columns("A").Clear
Range("a4") = "Type de produit"
Range("a4").Font.Bold = True
i = 4
While Not rst.EOF
i = i + 1
Sheets("Feuil1").Range("A" & i).Value = rst!CodeProduct
rst.MoveNext
Wend
1) Dans ta procédure Sub Connexion() tu fais tout simplement un Call Requête(arg1, arg2, arg3, etc.) Où arg1, arg2, arg3, etc. sont les arguments qui te servent à définir ta requête.
2) Ta procédure Requête() ressemble plus à une fonction qu'à une procédure non ? Heu là par contre les fonctions et moi on est plutôt fachés je pourrais pas t'expliquer :o(
J'espère avoir répondu à ta question ^^
"francisco" a écrit dans le message de news:c6t5jf$4c1$
Bonjour tout le monde Execusez moi je repose d'une autre manière ma question car j'ai du mal à expliquer clairement ce que je veux faire j'espere que sous cette angle je sois plus clair Comment faire pour appeler une requete qui se trouve dans un module distinct
à partir d'un autre module .Le module ou se trouve la requête Rsql s'appelle ModRequête et la procedure Sub Requête () . L'endroit à partir duquel je dois appeler cette requête est Le module ModConnexion et la procedure se denomme Sub Connexion () Mon objectif final est de pouvoir isoler ma requete Rsql dans un autre module de manière à pouvoir l'utiliser dans plusieurs procedures en meme temps sans etre tout le temps entrain de la reecrire. Vous trouverez en dessous le code Amicalement Francisco Merci pour votre aide ________________________________________ ModRequête '_________________________________________ Public Rsql As String __________________________________________ Sub requête() Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct, Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _ & " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume, Ventes1999.AverageExMill ," _ & " Ventes1999.VariablesCosts, Ventes1999.FixedCosts, Ventes1999.TonnesHeures FROM Ventes1999 " _ & "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "' and
End Sub '_______________________________________________ ModConnexion '______________________________________________ ce code provient d'un module appelé ModConnexion Sub Connexion() Dim cnt As New ADODB.Connection Dim rst As New ADODB.Recordset Dim rst1 As New ADODB.Recordset Dim i As Integer Dim Rsql As String
CritereCodeProduct = FrmSaisie.CboListeCodeProduct.Value CritereConditionnement = FrmSaisie.CboListeConditionnement.Value CriterePM = FrmSaisie.CboListePM.Value CritereCouleur = FrmSaisie.CboListeCouleur.Value CritereVolume = FrmSaisie.CboListeVolume.Value ___________________________________ 'Que doids je mettre ici à la place de Rsql __________________________________ Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct, Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _ & " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume, Ventes1999.AverageExMill ," _ & " Ventes1999.VariablesCosts, Ventes1999.FixedCosts, Ventes1999.TonnesHeures FROM Ventes1999 " _ & "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "' and
'---------------------------------------------------- 'à ouvrir une seule fois cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source > c:psm_analyse_formulaire.mdb ;" '------------------------------------------------------------ 'Alimentation CODEPRODUCT '------------------------------------------------------------
rst.Open Rsql, cnt
Columns("A").Clear Range("a4") = "Type de produit" Range("a4").Font.Bold = True i = 4 While Not rst.EOF i = i + 1 Sheets("Feuil1").Range("A" & i).Value = rst!CodeProduct rst.MoveNext Wend
rst.Close Set rst = Nothing End Sub
francisco
Merci Thierry et Kergresse pour vos reponses
"Thierry Euzenot" a écrit dans le message de news:
Heu deux solutions à mon avis :
1) Dans ta procédure Sub Connexion() tu fais tout simplement un Call Requête(arg1, arg2, arg3, etc.) Où arg1, arg2, arg3, etc. sont les arguments qui te servent à définir ta requête.
2) Ta procédure Requête() ressemble plus à une fonction qu'à une procédure non ? Heu là par contre les fonctions et moi on est plutôt fachés je pourrais pas
t'expliquer :o(
J'espère avoir répondu à ta question ^^
"francisco" a écrit dans le message de news:c6t5jf$4c1$
Bonjour tout le monde Execusez moi je repose d'une autre manière ma question car j'ai du mal à expliquer clairement ce que je veux faire j'espere que sous cette angle je
sois plus clair Comment faire pour appeler une requete qui se trouve dans un module distinct
à partir d'un autre module .Le module ou se trouve la requête Rsql s'appelle ModRequête et la procedure Sub Requête () . L'endroit à partir duquel je dois appeler cette requête est Le module ModConnexion et la procedure se denomme Sub Connexion () Mon objectif final est de pouvoir isoler ma requete Rsql dans un autre module de manière à pouvoir l'utiliser dans plusieurs procedures en meme temps sans etre tout le temps entrain de la reecrire. Vous trouverez en dessous le code Amicalement Francisco Merci pour votre aide ________________________________________ ModRequête '_________________________________________ Public Rsql As String __________________________________________ Sub requête() Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct, Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _ & " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume, Ventes1999.AverageExMill ," _ & " Ventes1999.VariablesCosts, Ventes1999.FixedCosts, Ventes1999.TonnesHeures FROM Ventes1999 " _ & "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "' and
End Sub '_______________________________________________ ModConnexion '______________________________________________ ce code provient d'un module appelé ModConnexion Sub Connexion() Dim cnt As New ADODB.Connection Dim rst As New ADODB.Recordset Dim rst1 As New ADODB.Recordset Dim i As Integer Dim Rsql As String
CritereCodeProduct = FrmSaisie.CboListeCodeProduct.Value CritereConditionnement = FrmSaisie.CboListeConditionnement.Value CriterePM = FrmSaisie.CboListePM.Value CritereCouleur = FrmSaisie.CboListeCouleur.Value CritereVolume = FrmSaisie.CboListeVolume.Value ___________________________________ 'Que doids je mettre ici à la place de Rsql __________________________________ Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct, Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _ & " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume, Ventes1999.AverageExMill ," _ & " Ventes1999.VariablesCosts, Ventes1999.FixedCosts, Ventes1999.TonnesHeures FROM Ventes1999 " _ & "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "' and
'---------------------------------------------------- 'à ouvrir une seule fois cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source > > c:psm_analyse_formulaire.mdb ;" '------------------------------------------------------------ 'Alimentation CODEPRODUCT '------------------------------------------------------------
rst.Open Rsql, cnt
Columns("A").Clear Range("a4") = "Type de produit" Range("a4").Font.Bold = True i = 4 While Not rst.EOF i = i + 1 Sheets("Feuil1").Range("A" & i).Value = rst!CodeProduct rst.MoveNext Wend
rst.Close Set rst = Nothing End Sub
Merci Thierry et Kergresse pour vos reponses
"Thierry Euzenot" <te.st2e@free.fr> a écrit dans le message de news:
uOpG4fpLEHA.808@tk2msftngp13.phx.gbl...
Heu deux solutions à mon avis :
1) Dans ta procédure Sub Connexion() tu fais tout simplement un Call
Requête(arg1, arg2, arg3, etc.)
Où arg1, arg2, arg3, etc. sont les arguments qui te servent à définir ta
requête.
2) Ta procédure Requête() ressemble plus à une fonction qu'à une procédure
non ?
Heu là par contre les fonctions et moi on est plutôt fachés je pourrais
pas
t'expliquer :o(
J'espère avoir répondu à ta question ^^
"francisco" <malabar@wanadoo.fr> a écrit dans le message de
news:c6t5jf$4c1$1@news-reader1.wanadoo.fr...
Bonjour tout le monde
Execusez moi je repose d'une autre manière ma question car j'ai du mal à
expliquer clairement ce que je veux faire j'espere que sous cette angle
je
sois plus clair
Comment faire pour appeler une requete qui se trouve dans un module
distinct
à partir d'un autre module .Le module ou se trouve la requête Rsql
s'appelle ModRequête et la procedure Sub Requête () .
L'endroit à partir duquel je dois appeler cette requête est Le module
ModConnexion et la procedure se denomme Sub Connexion ()
Mon objectif final est de pouvoir isoler ma requete Rsql dans un autre
module de manière à pouvoir l'utiliser dans plusieurs procedures en meme
temps sans etre tout le temps entrain de la reecrire.
Vous trouverez en dessous le code
Amicalement Francisco
Merci pour votre aide
________________________________________
ModRequête
'_________________________________________
Public Rsql As String
__________________________________________
Sub requête()
Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume,
Ventes1999.AverageExMill ," _
& " Ventes1999.VariablesCosts, Ventes1999.FixedCosts,
Ventes1999.TonnesHeures FROM Ventes1999 " _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "'
and
End Sub
'_______________________________________________
ModConnexion
'______________________________________________
ce code provient d'un module appelé ModConnexion
Sub Connexion()
Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rst1 As New ADODB.Recordset
Dim i As Integer
Dim Rsql As String
CritereCodeProduct = FrmSaisie.CboListeCodeProduct.Value
CritereConditionnement = FrmSaisie.CboListeConditionnement.Value
CriterePM = FrmSaisie.CboListePM.Value
CritereCouleur = FrmSaisie.CboListeCouleur.Value
CritereVolume = FrmSaisie.CboListeVolume.Value
___________________________________
'Que doids je mettre ici à la place de Rsql
__________________________________
Rsql = "Select Ventes1999.CodeProduct,
Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume,
Ventes1999.AverageExMill ," _
& " Ventes1999.VariablesCosts, Ventes1999.FixedCosts,
Ventes1999.TonnesHeures FROM Ventes1999 " _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "'
and
'----------------------------------------------------
'à ouvrir une seule fois
cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source > > c:psm_analyse_formulaire.mdb ;"
'------------------------------------------------------------
'Alimentation CODEPRODUCT
'------------------------------------------------------------
rst.Open Rsql, cnt
Columns("A").Clear
Range("a4") = "Type de produit"
Range("a4").Font.Bold = True
i = 4
While Not rst.EOF
i = i + 1
Sheets("Feuil1").Range("A" & i).Value = rst!CodeProduct
rst.MoveNext
Wend
"Thierry Euzenot" a écrit dans le message de news:
Heu deux solutions à mon avis :
1) Dans ta procédure Sub Connexion() tu fais tout simplement un Call Requête(arg1, arg2, arg3, etc.) Où arg1, arg2, arg3, etc. sont les arguments qui te servent à définir ta requête.
2) Ta procédure Requête() ressemble plus à une fonction qu'à une procédure non ? Heu là par contre les fonctions et moi on est plutôt fachés je pourrais pas
t'expliquer :o(
J'espère avoir répondu à ta question ^^
"francisco" a écrit dans le message de news:c6t5jf$4c1$
Bonjour tout le monde Execusez moi je repose d'une autre manière ma question car j'ai du mal à expliquer clairement ce que je veux faire j'espere que sous cette angle je
sois plus clair Comment faire pour appeler une requete qui se trouve dans un module distinct
à partir d'un autre module .Le module ou se trouve la requête Rsql s'appelle ModRequête et la procedure Sub Requête () . L'endroit à partir duquel je dois appeler cette requête est Le module ModConnexion et la procedure se denomme Sub Connexion () Mon objectif final est de pouvoir isoler ma requete Rsql dans un autre module de manière à pouvoir l'utiliser dans plusieurs procedures en meme temps sans etre tout le temps entrain de la reecrire. Vous trouverez en dessous le code Amicalement Francisco Merci pour votre aide ________________________________________ ModRequête '_________________________________________ Public Rsql As String __________________________________________ Sub requête() Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct, Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _ & " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume, Ventes1999.AverageExMill ," _ & " Ventes1999.VariablesCosts, Ventes1999.FixedCosts, Ventes1999.TonnesHeures FROM Ventes1999 " _ & "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "' and
End Sub '_______________________________________________ ModConnexion '______________________________________________ ce code provient d'un module appelé ModConnexion Sub Connexion() Dim cnt As New ADODB.Connection Dim rst As New ADODB.Recordset Dim rst1 As New ADODB.Recordset Dim i As Integer Dim Rsql As String
CritereCodeProduct = FrmSaisie.CboListeCodeProduct.Value CritereConditionnement = FrmSaisie.CboListeConditionnement.Value CriterePM = FrmSaisie.CboListePM.Value CritereCouleur = FrmSaisie.CboListeCouleur.Value CritereVolume = FrmSaisie.CboListeVolume.Value ___________________________________ 'Que doids je mettre ici à la place de Rsql __________________________________ Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct, Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _ & " Ventes1999.Grammage, Ventes1999.PM, Ventes1999.Volume, Ventes1999.AverageExMill ," _ & " Ventes1999.VariablesCosts, Ventes1999.FixedCosts, Ventes1999.TonnesHeures FROM Ventes1999 " _ & "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct & "' and
'---------------------------------------------------- 'à ouvrir une seule fois cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source > > c:psm_analyse_formulaire.mdb ;" '------------------------------------------------------------ 'Alimentation CODEPRODUCT '------------------------------------------------------------
rst.Open Rsql, cnt
Columns("A").Clear Range("a4") = "Type de produit" Range("a4").Font.Bold = True i = 4 While Not rst.EOF i = i + 1 Sheets("Feuil1").Range("A" & i).Value = rst!CodeProduct rst.MoveNext Wend