Attendu : Séparateur de liste ou ) dans mon code VB 6

Signaler
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Bonjour tout le monde et joyeux Noël,

J'ai ce code :

Set rsRecette = BDOuvrirTable( _
"SELECT * FROM detail_recette WHERE ref_recette = '" & rsRecette("nom")& "', True)

J'obtiens ce message d'erreur :

Attendu : Séparateur de liste ou )

Merci d'avance pour votre aide.

beegeezzz

6 réponses

Messages postés
48
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
9 novembre 2009

Salut;
tu a Oubliée  "
Set rsRecette = BDOuvrirTable( _
"SELECT * FROM detail_recette WHERE ref_recette = '" & rsRecette("nom")& "', True " )
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
salut,

presque ^^

Set rsRecette = BDOuvrirTable( _
"SELECT * FROM detail_recette WHERE ref_recette = '" & rsRecette("nom") & "'", True)

(et manquait aussi un espace avant le

&

)
++

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
1
Salut,

Un tout grand merci à vous deux pour vos réponses.

Maintenant, ça ne bloque plus dans le set mais ça bloque ici :

Public Function BDOuvrirTable(ByVal NomTable As String, Optional ByVal LectureSeule As Boolean = False) As Recordset
    Set BDOuvrirTable = BD.OpenRecordset(NomTable, IIf(LectureSeule, dbOpenSnapshot, dbOpenDynaset))
End Function

J'obtiens le message d'erreur suivant :

Type de données incompatible dans l'expression du critère.

Sauriez-vous me dire comme résoudre cela ?

Je vous remercie encore pour votre aide.

beegeezzz
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
on doit tout deviner?

d'abord trouver l'erreur d'une fonction non fournie puis ici inventer les types?
il ne faut pas oublier que nous n'avons connaissance que de ce que tu nous dis, donc très peu ici.

alors :

DB est-il bien connecté?
est-tu en ADO? DAO? quelle version?
quelle type de base?
la table "detail_recette" existe bien?
quel est le type de "ref_recette"?
que contient rsRecette avant l'instanciation?
quel est le type et le contenu de "nom" à ce moment?

nb : si "ref_recette" est un numérique, il faut enlever les apostrophes

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
1
PCPT, merci pour ta réponse et désolé pour le manque d'information.

DB est-il bien connecté? oui
est-tu en ADO? DAO? quelle version? DAO
quelle type de base? ACCESS
la table "detail_recette" existe bien? oui
quel est le type de "ref_recette"? string
que contient rsRecette avant l'instanciation? voir le code ci-dessous stp
quel est le type et le contenu de "nom" à ce moment?

Private Sub listRecettes_Click(Index As Integer)
    'permet d'afficher dans une zone de texte le prix et le nom de la recette

    Dim rsRecette As Recordset
   
    If listRecettes(0).ListIndex = -1 Then
        'textChamp(ChampCP).Text = ""
        'textChamp(ChampNom).Text = ""
    Else
    'ItemData est un tableau, ListeIndex sont les indices de ce tableau)
        Set rsRecette = BDOuvrirTable( _
        "SELECT * FROM recette WHERE id = " & listRecettes(0).ItemData(listRecettes(0).ListIndex), True)
        textNomRecette(0).Text = rsRecette("nom")
        textPrixRecette(1).Text = rsRecette("prix") & " €"
       
 Set rsRecette = BDOuvrirTable( _
"SELECT * FROM detail_recette WHERE ref_recette = '" & rsRecette("nom") & "'", True)

        rsRecette.Close
    End If

End Sub

Cette ligne de code :

 Set rsRecette = BDOuvrirTable( _

"SELECT * FROM detail_recette WHERE ref_recette = '" & rsRecette("nom") & "'", True)

Est envoyée à BDOuvrirTable.

Quand j'essaie en access de créer la requête avec l'outil sql, j'obtiens le même message.

Le message d'erreur provient donc d'Access ?

Encore merci
beegees
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
re

sans vouloir mettre tes informations en doute :


la table "detail_recette" existe bien? oui



->

"detail_recette" 

serait un nom qu'on attribuerait plus facilement à un champ qu'à une table...

cependant admettons (le message d'erreur serait différent) mais :


quel est le type de "ref_recette"? string

-> ne met-on pas "ref" pour "référence" ? donc plutôt un identifiant numérique qu'un nom?

as-tu essayé sans les apostrophes?
as-tu fais un MSGBOX RSRECETTE("NOM") avant la 2è requête pour vérifier?
de plus récupérer le contenu en variable permettrait de faire un .CLOSE avant le 2e appel

enfin : pourquoi avoir choisi DAO qui n'est pas du tout à jour?....

ps : l'erreur vient sans doute d'access oui, mais par ton passage d'argument "inattendu" ;)

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp