OVH Cloud OVH Cloud

Problème de macro

13 réponses
Avatar
Guillaume
Bonjour, j'ai un message d'erreur quand j'exécute cette macro.

Message d'erreur :
Erreur de compilation
Membre de méthode ou de données introuvable

Pouvez-vous me dire pourquoi ?

Guillaume

Private Sub RefreshQuery()
Dim SQL As String
Dim SQLWhere As String

SQL = "SELECT num_fournisseur, nom_fournisseur, pays_fournisseur,
origine_tissu FROM Req principal where Req principal!num_fournisseur <> 0"

If Not Me.chkTypeProduit Then
SQL = SQL & "And Req principal!type_produit = '" & Me.cmbRechTypeProduit
& "' "
End If


SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Wehre ") - Len("Where ") +
1))

SQL = SQL & ";"

Me.lblStats.Caption = DCount("*", "Req principal", SQLWhere) & " / " &
DCount("*", "Req Principal")
Me.lstResults.RowSource = SQL
Me.lstResults.Requery


End Sub

3 réponses

1 2
Avatar
Eric
Tu as mis (saisi) ton code dans l'editeur VBE( Bascule par ALT+F11)
Donc Menu Affichage, Fenetre Exécution et tu verras affiché le sql avec
les variables renseignées.

Eric


"Guillaume" écrivait news:uydDl52iEHA.3632
@TK2MSFTNGP09.phx.gbl:

Pas de fenêtre de débogage qui apparait
Guillaume

PS : J'essaye de prendre exemple par rapport à cet exemple là :
http://cafeine.developpez.com/access/recherche/



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

re,

Dans ton code
sous la ligne SQL=SQL & ";"

mets : Debug.Print SQL : Stop
et copies le sql en clair affiché dans la fenêtre de debogage ici.
(Idem pour le SQLWhere)

A+
Eric


"Guillaume" écrivait
news::

Toujours le même problème qu'avant.
Je commence à despérer !!!

Je sais plus quoi faire.

Guillaume


"Raymond [mvp]" a écrit dans le message
de news:
If Not Me.chkTypeProduit Then
SQL = SQL & "And [Req principal].type_produit = '" &
Me.cmbRechTypeProduit

& "' "
End If

mettre un espace avant le And

pourquoi fais-tu un dcount pour compter ta liste ? le listcount te
le




donne
?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guillaume" a écrit dans le message de
news:
Voici maintenant ma nouvelle macro :

Private Sub RefreshQuery()
Dim SQL As String
Dim SQLWhere As String

SQL = "SELECT num_fournisseur, nom_fournisseur, pays_fournisseur,
origine_tissu FROM [Req principal] where [Req
principal].num_fournisseur
<>

0"


If Not Me.chkTypeProduit Then
SQL = SQL & "And [Req principal].type_produit = '" &
Me.cmbRechTypeProduit

& "' "
End If

SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") -
Len("Where ")
+

1))


SQL = SQL & ";"

Me.lblStats.Caption = DCount("*", "[Req principal]", SQLWhere) &
" /




" & DCount("*", "[Req Principal]")
Me.lstResults.RowSource = SQL
Me.lstResults.Requery


End Sub


Toujours le même problème,
- une ligne soulignée en jaune : Private Sub RefreshQuery()
- une partie de ligne soulignée en bleue (ici en gras) :
Me.lstResults.RowSource = SQL

Peut-être un problème de référence dans Visual Basic Editor

Guillaume


















Avatar
Guillaume
Enfin j'ai trouvé ce qui ne fonctionnait pas.
J'avais ajouté une zone de texte au lieu d'uné zone de liste.

Merci à TOI Eric pour ton soutien.

Guillaume


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

Tu as mis (saisi) ton code dans l'editeur VBE( Bascule par ALT+F11)
Donc Menu Affichage, Fenetre Exécution et tu verras affiché le sql avec
les variables renseignées.

Eric


"Guillaume" écrivait news:uydDl52iEHA.3632
@TK2MSFTNGP09.phx.gbl:

Pas de fenêtre de débogage qui apparait
Guillaume

PS : J'essaye de prendre exemple par rapport à cet exemple là :
http://cafeine.developpez.com/access/recherche/



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

re,

Dans ton code
sous la ligne SQL=SQL & ";"

mets : Debug.Print SQL : Stop
et copies le sql en clair affiché dans la fenêtre de debogage ici.
(Idem pour le SQLWhere)

A+
Eric


"Guillaume" écrivait
news::

Toujours le même problème qu'avant.
Je commence à despérer !!!

Je sais plus quoi faire.

Guillaume


"Raymond [mvp]" a écrit dans le message
de news:
If Not Me.chkTypeProduit Then
SQL = SQL & "And [Req principal].type_produit = '" &
Me.cmbRechTypeProduit

& "' "
End If

mettre un espace avant le And

pourquoi fais-tu un dcount pour compter ta liste ? le listcount te
le




donne
?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guillaume" a écrit dans le message de
news:
Voici maintenant ma nouvelle macro :

Private Sub RefreshQuery()
Dim SQL As String
Dim SQLWhere As String

SQL = "SELECT num_fournisseur, nom_fournisseur, pays_fournisseur,
origine_tissu FROM [Req principal] where [Req
principal].num_fournisseur
<>

0"


If Not Me.chkTypeProduit Then
SQL = SQL & "And [Req principal].type_produit = '" &
Me.cmbRechTypeProduit

& "' "
End If

SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") -
Len("Where ")
+

1))


SQL = SQL & ";"

Me.lblStats.Caption = DCount("*", "[Req principal]", SQLWhere) &
" /




" & DCount("*", "[Req Principal]")
Me.lstResults.RowSource = SQL
Me.lstResults.Requery


End Sub


Toujours le même problème,
- une ligne soulignée en jaune : Private Sub RefreshQuery()
- une partie de ligne soulignée en bleue (ici en gras) :
Me.lstResults.RowSource = SQL

Peut-être un problème de référence dans Visual Basic Editor

Guillaume





















Avatar
Guillaume
Enfin j'ai trouvé ce qui ne fonctionnait pas.
J'avais ajouté une zone de texte au lieu d'uné zone de liste.

Merci à TOI Raymond pour ton soutien.

Guillaume


"Raymond [mvp]" a écrit dans le message de
news:
If Not Me.chkTypeProduit Then
SQL = SQL & "And [Req principal].type_produit = '" &
Me.cmbRechTypeProduit

& "' "
End If

mettre un espace avant le And

pourquoi fais-tu un dcount pour compter ta liste ? le listcount te le
donne

?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guillaume" a écrit dans le message de
news:
Voici maintenant ma nouvelle macro :

Private Sub RefreshQuery()
Dim SQL As String
Dim SQLWhere As String

SQL = "SELECT num_fournisseur, nom_fournisseur, pays_fournisseur,
origine_tissu FROM [Req principal] where [Req principal].num_fournisseur
<>

0"


If Not Me.chkTypeProduit Then
SQL = SQL & "And [Req principal].type_produit = '" &
Me.cmbRechTypeProduit

& "' "
End If

SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ")
+

1))


SQL = SQL & ";"

Me.lblStats.Caption = DCount("*", "[Req principal]", SQLWhere) & " / " &
DCount("*", "[Req Principal]")
Me.lstResults.RowSource = SQL
Me.lstResults.Requery


End Sub


Toujours le même problème,
- une ligne soulignée en jaune : Private Sub RefreshQuery()
- une partie de ligne soulignée en bleue (ici en gras) :
Me.lstResults.RowSource = SQL

Peut-être un problème de référence dans Visual Basic Editor

Guillaume





1 2