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

Probleme de delaration de variables Erreur d'execution 3001

4 réponses
Avatar
francisco
Bonjour tout le monde

j'essaie de declarer la Requête Rsql dans un autre module appelé
Moddeclaration et j'ai une erreur d'execution 3001 incompatibilité de type
Je vous mets mon code de départ ou la je n'ai pas de probleme .Si j'appelle
ma requete Rsql à partir d'un autre module j'ai des problemes vus trouverez
la modif que j'ai fait dans mon code dans la procedure SubConnexion
(ouvrirFichier) afin de pouvoir appeler ma requete à partir d'un autre
module mais cela ne marche pas Est ce peut être parceque je dois declarer
mon combobox dans Moddeclaration mon combobox regroupant tous les codes
produits se trouvent dans un formulaire nommé Frmsaisie Je ne sais pas d'ou
vient mon erreur mais à mon avis je ne sais pas declarer mon combobox de
manière à cequ'il soit pris comme variable public ni ma requete
Comment dois je dedeclarer ma requete Rsql dans un autre module de manière à
ce qu'elle soit prise comme variable publique ?
Comment dois je declarer mon combobox pour qu'il soit aussi defini comme
variable publique ?

Merci tout le monde pour vos reponses
Amicalement Francisco

Sub EtablirConnexion(OuvrirFichier)

Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim i As Integer

Dim CritereCodeProduct As String
CritereCodeProduct = FrmSaisie.CboListeCodeProduct.Value

Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct)

'---------------------------------------------------------------------------
----
'Alimentation CODEPRODUCT
'---------------------------------------------------------------------------
----

'à ouvrir une seule fois
cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=
c:\psm_analyse_formulaire.mdb ;"
rst.Open Rsql, cnt
'---------------------------------------------------------------------------
------------------------
Ce que j'ai modifié qui ne marche pas erreur d'execution 3001
Incompatibilité de type
'---------------------------------------------------------------------------
------------------------
'rst.Open Moddeclaration .RequeteSql(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

Dans le module Moddeclaration j'ai écrit cela de la manière suivante :
______________________________________________________
Public Rsql As String
______________________________________________________
Sub RequeteSql(Rsql)

Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct)

End Sub

4 réponses

Avatar
francisco
Salut MichDenis oui il y a un point
car Moddeclaration correspont au module ou je declare comme variable
publique Rsql à l'interieur d'une procedure qui s'appele RequeteRsql
"michdenis" a écrit dans le message de
news:umGp8o$
Bonjour Francisco,


Pourquoi ne pas déclaré dans le haut du module une constante du nom de ta
requête. Tu pourras l'appeler de n'importe

quel module de ton projet.

Public Rsql = "Select Ventes1999.CodeProduct,
Ventes1999.LibelleCodeProduct,

Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct)

Dans cette ligne de code :

'rst.Open Moddeclaration .RequeteSql(Rsql), cnt

Il y a-t-il un point devant le mot requête ? si oui problème !


Salutations!



"francisco" a écrit dans le message de
news:c89t76$2he$

Bonjour tout le monde

j'essaie de declarer la Requête Rsql dans un autre module appelé
Moddeclaration et j'ai une erreur d'execution 3001 incompatibilité de type
Je vous mets mon code de départ ou la je n'ai pas de probleme .Si
j'appelle

ma requete Rsql à partir d'un autre module j'ai des problemes vus
trouverez

la modif que j'ai fait dans mon code dans la procedure SubConnexion
(ouvrirFichier) afin de pouvoir appeler ma requete à partir d'un autre
module mais cela ne marche pas Est ce peut être parceque je dois declarer
mon combobox dans Moddeclaration mon combobox regroupant tous les codes
produits se trouvent dans un formulaire nommé Frmsaisie Je ne sais pas
d'ou

vient mon erreur mais à mon avis je ne sais pas declarer mon combobox de
manière à cequ'il soit pris comme variable public ni ma requete
Comment dois je dedeclarer ma requete Rsql dans un autre module de manière
à

ce qu'elle soit prise comme variable publique ?
Comment dois je declarer mon combobox pour qu'il soit aussi defini comme
variable publique ?

Merci tout le monde pour vos reponses
Amicalement Francisco

Sub EtablirConnexion(OuvrirFichier)

Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim i As Integer

Dim CritereCodeProduct As String
CritereCodeProduct = FrmSaisie.CboListeCodeProduct.Value

Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct)


'---------------------------------------------------------------------------

----
'Alimentation CODEPRODUCT

'---------------------------------------------------------------------------

----

'à ouvrir une seule fois
cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source > c:psm_analyse_formulaire.mdb ;"
rst.Open Rsql, cnt

'---------------------------------------------------------------------------

------------------------
Ce que j'ai modifié qui ne marche pas erreur d'execution 3001
Incompatibilité de type

'---------------------------------------------------------------------------

------------------------
'rst.Open Moddeclaration .RequeteSql(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

Dans le module Moddeclaration j'ai écrit cela de la manière suivante :
______________________________________________________
Public Rsql As String
______________________________________________________
Sub RequeteSql(Rsql)

Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct)

End Sub





Avatar
michdenis
Bonjour Francisco,


Pourquoi ne pas déclaré dans le haut du module une constante du nom de ta requête. Tu pourras l'appeler de n'importe
quel module de ton projet.

Public Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct)

Dans cette ligne de code :

'rst.Open Moddeclaration .RequeteSql(Rsql), cnt

Il y a-t-il un point devant le mot requête ? si oui problème !


Salutations!



"francisco" a écrit dans le message de news:c89t76$2he$
Bonjour tout le monde

j'essaie de declarer la Requête Rsql dans un autre module appelé
Moddeclaration et j'ai une erreur d'execution 3001 incompatibilité de type
Je vous mets mon code de départ ou la je n'ai pas de probleme .Si j'appelle
ma requete Rsql à partir d'un autre module j'ai des problemes vus trouverez
la modif que j'ai fait dans mon code dans la procedure SubConnexion
(ouvrirFichier) afin de pouvoir appeler ma requete à partir d'un autre
module mais cela ne marche pas Est ce peut être parceque je dois declarer
mon combobox dans Moddeclaration mon combobox regroupant tous les codes
produits se trouvent dans un formulaire nommé Frmsaisie Je ne sais pas d'ou
vient mon erreur mais à mon avis je ne sais pas declarer mon combobox de
manière à cequ'il soit pris comme variable public ni ma requete
Comment dois je dedeclarer ma requete Rsql dans un autre module de manière à
ce qu'elle soit prise comme variable publique ?
Comment dois je declarer mon combobox pour qu'il soit aussi defini comme
variable publique ?

Merci tout le monde pour vos reponses
Amicalement Francisco

Sub EtablirConnexion(OuvrirFichier)

Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim i As Integer

Dim CritereCodeProduct As String
CritereCodeProduct = FrmSaisie.CboListeCodeProduct.Value

Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct)

'---------------------------------------------------------------------------
----
'Alimentation CODEPRODUCT
'---------------------------------------------------------------------------
----

'à ouvrir une seule fois
cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source c:psm_analyse_formulaire.mdb ;"
rst.Open Rsql, cnt
'---------------------------------------------------------------------------
------------------------
Ce que j'ai modifié qui ne marche pas erreur d'execution 3001
Incompatibilité de type
'---------------------------------------------------------------------------
------------------------
'rst.Open Moddeclaration .RequeteSql(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

Dans le module Moddeclaration j'ai écrit cela de la manière suivante :
______________________________________________________
Public Rsql As String
______________________________________________________
Sub RequeteSql(Rsql)

Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct)

End Sub
Avatar
michdenis
J'ai juste oublié quelque chose d'important dans la déclaration il faut bien entendu mettre le mot "Const" ... vivre
les copier-coller !!!


Public Const Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct)


Salutations!


"francisco" a écrit dans le message de news:c89t76$2he$
Bonjour tout le monde

j'essaie de declarer la Requête Rsql dans un autre module appelé
Moddeclaration et j'ai une erreur d'execution 3001 incompatibilité de type
Je vous mets mon code de départ ou la je n'ai pas de probleme .Si j'appelle
ma requete Rsql à partir d'un autre module j'ai des problemes vus trouverez
la modif que j'ai fait dans mon code dans la procedure SubConnexion
(ouvrirFichier) afin de pouvoir appeler ma requete à partir d'un autre
module mais cela ne marche pas Est ce peut être parceque je dois declarer
mon combobox dans Moddeclaration mon combobox regroupant tous les codes
produits se trouvent dans un formulaire nommé Frmsaisie Je ne sais pas d'ou
vient mon erreur mais à mon avis je ne sais pas declarer mon combobox de
manière à cequ'il soit pris comme variable public ni ma requete
Comment dois je dedeclarer ma requete Rsql dans un autre module de manière à
ce qu'elle soit prise comme variable publique ?
Comment dois je declarer mon combobox pour qu'il soit aussi defini comme
variable publique ?

Merci tout le monde pour vos reponses
Amicalement Francisco

Sub EtablirConnexion(OuvrirFichier)

Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim i As Integer

Dim CritereCodeProduct As String
CritereCodeProduct = FrmSaisie.CboListeCodeProduct.Value

Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct)

'---------------------------------------------------------------------------
----
'Alimentation CODEPRODUCT
'---------------------------------------------------------------------------
----

'à ouvrir une seule fois
cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source c:psm_analyse_formulaire.mdb ;"
rst.Open Rsql, cnt
'---------------------------------------------------------------------------
------------------------
Ce que j'ai modifié qui ne marche pas erreur d'execution 3001
Incompatibilité de type
'---------------------------------------------------------------------------
------------------------
'rst.Open Moddeclaration .RequeteSql(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

Dans le module Moddeclaration j'ai écrit cela de la manière suivante :
______________________________________________________
Public Rsql As String
______________________________________________________
Sub RequeteSql(Rsql)

Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct)

End Sub
Avatar
michdenis
Bonjour Francisco,

Si ta variable est déclarée "comme Public" dans le haut d'un module Standard, Nul besoin d'appeler ta variable avec un
point devant ou précédé par le nom du module devant.


Salutations!


"francisco" a écrit dans le message de news:c8a5hj$i5i$
Salut MichDenis oui il y a un point
car Moddeclaration correspont au module ou je declare comme variable
publique Rsql à l'interieur d'une procedure qui s'appele RequeteRsql
"michdenis" a écrit dans le message de
news:umGp8o$
Bonjour Francisco,


Pourquoi ne pas déclaré dans le haut du module une constante du nom de ta
requête. Tu pourras l'appeler de n'importe

quel module de ton projet.

Public Rsql = "Select Ventes1999.CodeProduct,
Ventes1999.LibelleCodeProduct,

Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct)

Dans cette ligne de code :

'rst.Open Moddeclaration .RequeteSql(Rsql), cnt

Il y a-t-il un point devant le mot requête ? si oui problème !


Salutations!



"francisco" a écrit dans le message de
news:c89t76$2he$

Bonjour tout le monde

j'essaie de declarer la Requête Rsql dans un autre module appelé
Moddeclaration et j'ai une erreur d'execution 3001 incompatibilité de type
Je vous mets mon code de départ ou la je n'ai pas de probleme .Si
j'appelle

ma requete Rsql à partir d'un autre module j'ai des problemes vus
trouverez

la modif que j'ai fait dans mon code dans la procedure SubConnexion
(ouvrirFichier) afin de pouvoir appeler ma requete à partir d'un autre
module mais cela ne marche pas Est ce peut être parceque je dois declarer
mon combobox dans Moddeclaration mon combobox regroupant tous les codes
produits se trouvent dans un formulaire nommé Frmsaisie Je ne sais pas
d'ou

vient mon erreur mais à mon avis je ne sais pas declarer mon combobox de
manière à cequ'il soit pris comme variable public ni ma requete
Comment dois je dedeclarer ma requete Rsql dans un autre module de manière
à

ce qu'elle soit prise comme variable publique ?
Comment dois je declarer mon combobox pour qu'il soit aussi defini comme
variable publique ?

Merci tout le monde pour vos reponses
Amicalement Francisco

Sub EtablirConnexion(OuvrirFichier)

Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim i As Integer

Dim CritereCodeProduct As String
CritereCodeProduct = FrmSaisie.CboListeCodeProduct.Value

Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct)


'---------------------------------------------------------------------------

----
'Alimentation CODEPRODUCT

'---------------------------------------------------------------------------

----

'à ouvrir une seule fois
cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source > c:psm_analyse_formulaire.mdb ;"
rst.Open Rsql, cnt

'---------------------------------------------------------------------------

------------------------
Ce que j'ai modifié qui ne marche pas erreur d'execution 3001
Incompatibilité de type

'---------------------------------------------------------------------------

------------------------
'rst.Open Moddeclaration .RequeteSql(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

Dans le module Moddeclaration j'ai écrit cela de la manière suivante :
______________________________________________________
Public Rsql As String
______________________________________________________
Sub RequeteSql(Rsql)

Rsql = "Select Ventes1999.CodeProduct, Ventes1999.LibelleCodeProduct,
Ventes1999.CodeConditionnement,Ventes1999.CodeCouleur," _
& "WHERE ((Ventes1999.LibelleCodeProduct)= '" & CritereCodeProduct)

End Sub