Erreur 3061

LilieFreyja Messages postés 3 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 31 octobre 2005 - 29 oct. 2005 à 20:20
LilieFreyja Messages postés 3 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 31 octobre 2005 - 31 oct. 2005 à 11:41
voila, je bosse sous VB6, mon problème : à l'éxecution de cette requête, l'erreur 3061 fait son apparition en me réclamant 2 paramètres.

SQL = "SELECT ANIMAL.Ani_Nom, ESPECE.Esp_Lib, ANIMAL.Ani_Sexe, ANIMAL.Ani_DNaiss, ANIMAL.Ani_DArr, ENCLOS.Enc_Nom "
SQL = SQL & "FROM ANIMAL, ESPECE, ENCLOS, SOIGNEUR " SQL SQL & "WHERE SOIGNEUR.Soi_Num ANIMAL.Soi_Num " SQL SQL & "AND ESPECE.Esp_Code ANIMAL.Esp_Code " SQL SQL & "AND ENCLOS.Enc_Cod ANIMAL.Enc_Cod " SQL SQL & "AND SOIGNEUR.Soi_Nom " & "'" & CbSoigneur.Text & "'"
Set rs_AfficheAnimal = DB.OpenRecordset(SQL)


dans la liste déroulante appelée <<CbSoigneur>> je selectionne le nom du soigneur .
cette requête me sert à afficher les informations contenue dans le SELECT dans une flex grid.

j'ai besoin de votre aide, car c'est une application que je fais dans le cadre de mes études.

en vous remerciant.

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 oct. 2005 à 04:48
Salut
Erreur 3061 : Too few parameters = manque paramètres
En fait, regarde ta commande OpenRecordSet, c'est surement là qu'il manque qqchose.
- Est-ce que DB et rs_AfficheAnimal ont bien été définis/dimensionnés avant ?
- Essaye voir Set rs_AfficheAnimal = DB.OpenRecordset(SQL, dbOpenSnapshot)
- Essaye aussi en ajoutant le caractère de fin de requète point-virgule ;
- Les caractères _ étant réservées en SQL, il serait peut-être utile d'ajouter des [ et ] aux nom des champs qui comportent ces _ :
SQL = "SELECT ANIMAL.[Ani_Nom], " & _
" ESPECE.[Esp_Lib], " & _
" ANIMAL.[Ani_Sexe], " & _
" ANIMAL.[Ani_DNaiss], " & _
" ANIMAL.[Ani_DArr], " & _
" ENCLOS.[Enc_Nom] " & _
"WHERE ...
- Pose un point d'arrêt sur la ligne du OpenRecordSet (clique sur la ligne et presse F9)
Le programme s'arrêtera avant l'exécution. Va dans la fenêtre de debug (Ctrl-G) et tape :
? SQL
et regarde si ta requète SQL est correcte, notamment si le nom du Soigneur est correct
- Essaye d'utiliser une syntaxe qui ressemble à ça, mais je ne sais pas si ça s'applique à ton objet :
rs_AfficheAnimal.Open SQL, DB, adOpenStatic, adLockReadOnly

Sinon, il faudra que tu nous en dises plus sur ta DB et ton recordset : comment sont-ils dimensionnés ? avec quel objet ? ADO ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
LilieFreyja Messages postés 3 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 31 octobre 2005
30 oct. 2005 à 12:19
Je suis en DAO .
J'ai essayé toutes tes solutions, mais malheureusement pour moi, aucune ne marche.
J'ai vérifié tous les champs du SELECT (orthographe, majuscule, table) et ils sont tous bien écrit.
Le fait de mettre des [] ne change rien.
Ma requête SQL est correcte.

Donc là, c'est le blanc total, je ne comprend pas quel paramètre il attend.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 oct. 2005 à 20:21
salut,

essai la requête comme suit :


SQL = "SELECT [ANIMAL.Ani_Nom], [ESPECE.Esp_Lib], [ANIMAL.Ani_Sexe], [ANIMAL.Ani_DNaiss], [ANIMAL.Ani_DArr], [ENCLOS.Enc_Nom] " & _
"FROM ANIMAL, ESPECE, ENCLOS, SOIGNEUR " & _
"WHERE [SOIGNEUR.Soi_Num] = [ANIMAL.Soi_Num] " & _
"AND [ESPECE.Esp_Code] = [ANIMAL.Esp_Code] " & _
"AND [ENCLOS.Enc_Cod] = [ANIMAL.Enc_Cod] " & _
"AND [SOIGNEUR.Soi_Nom] = " & "'" & CbSoigneur.Text & "' " & _
"ORDER BY [ANIMAL.Ani_Nom]"


tu peux également mettre les valeurs [....] en plus entre parenthèses.

le OrderBy est parfois indispensable sous DAO3.6

il te faut également vérifier que le type de tes champs de jointures soient les mêmes.
(même types clés primaires -> clés étrangères)

enfin, encore un problème de DAO, tu peux être obligé après ta requête, de faire un
rs.movelast
rs.movefirst

mais déjà à ce moment, c'est que l'erreur n'existe plus...

bon courage
PCPT [AFCK]
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 oct. 2005 à 20:22
ps : dans le pire des cas, tu peux faire ta requête sous access
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LilieFreyja Messages postés 3 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 31 octobre 2005
31 oct. 2005 à 11:41
la requête que tu m'as donnée, ne fonctionne pas non plus... le ORDER BY ne change rien


Et comme c'est activité pour mon examen de BTS, la requete ne peut pas etre faite sous access
0
Rejoignez-nous