Probléme entre access et vb avec select distinct

jimluis Messages postés 90 Date d'inscription jeudi 17 mars 2005 Statut Membre Dernière intervention 16 juin 2005 - 19 avril 2005 à 07:47
Dje69r Messages postés 35 Date d'inscription vendredi 7 mars 2003 Statut Membre Dernière intervention 11 septembre 2005 - 19 avril 2005 à 14:19
Bonjour,
J'ai un petit probléme, je m'explique:

je fais ça :

C_Str = " SELECT DISTINCT TypeProduit FROM produit "
Set Recordset = Ma_Base.OpenRecordset(C_Str)
If Not (Recordset.BOF And Recordset.EOF) Then
Do While Not Recordset.EOF
'On affiche les noms
Combo1.AddItem Recordset.Fields("TypeProduit").value
Loop
End If
Et j'ai une erreur a "set recordset"(2éme ligne) , ça me dit "argument type incorrect, en dehors des limites autorisé ou en conflit avec un autre"
je ne comprends pas.
Merci d'avance

JIMM
A voir également:

10 réponses

Starec Messages postés 152 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 5 mars 2007
19 avril 2005 à 10:13
Essaye ceci :
1- Met un ; aprés produit dans ta chaine Sql
2- Essaye Set Recordset = Ma_Base.OpenRecordset(C_Str, dbOpenDynaset)

Starec
0
jimluis Messages postés 90 Date d'inscription jeudi 17 mars 2005 Statut Membre Dernière intervention 16 juin 2005
19 avril 2005 à 10:29
Merci, mais ça ne marche toujours pas, ça bloque au set recorset. Même message.

JIMM
0
Dje69r Messages postés 35 Date d'inscription vendredi 7 mars 2003 Statut Membre Dernière intervention 11 septembre 2005
19 avril 2005 à 10:46
Question bete... tu n'aurais pas un champs mémo dans ta table [produit] ??
Car moi j'ai eu le soucis il y a pas mal de temps sur Access 97...

Dje
0
Starec Messages postés 152 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 5 mars 2007
19 avril 2005 à 10:59
Je ferais plutôt

C_Str = "SELECT DISTINCT TypeProduit FROM produit;" Vire l'espace avant le Select
Set Recordset = Ma_Base.OpenRecordset(C_Str,dbOpenDynaset)
WHILE not Recordset.Eof
nomdelaform.Combo1.Additem Recordset("TypeProduit")
recordset.movenext
Wend
Recordest.close
set Reordset = Nothing

Starec
0

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

Posez votre question
jimluis Messages postés 90 Date d'inscription jeudi 17 mars 2005 Statut Membre Dernière intervention 16 juin 2005
19 avril 2005 à 11:13
Non j'ai pas de champs mémo.c'est un champs texte.

Même avec ce code cela ne marche pas , ça bloque a "Set Recordset = Ma_Base.OpenRecordset(C_Str,dbOpenDynaset) "

Comme toujours d'ailleurs
Je ne vois pas l'erreur, d'ou ça peut venir???
merci d'avance.

JIMM
0
Starec Messages postés 152 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 5 mars 2007
19 avril 2005 à 11:27
C'est sûrement la requête qui "Merde", je n'ai jamais utilisé la fonction DISTINCT en Sql, je pense qu'elle doit distinguer les différentes valeurs du champ de TypeProduit de ta table Produit, si c'est ce cas essaye un GROUP BY

C_Str = "SELECT TypeProduit FROM produit GROUP BY TypeProduit;"

De plus as-tu bien déclaré tes données, C_Str comme une string, Ma_Base comme DAO.Database, et Recordset comme DAO.Recordset

Sinon je coince désolé

Car je fais tout de tête je ne peux tester

Starec
0
jimluis Messages postés 90 Date d'inscription jeudi 17 mars 2005 Statut Membre Dernière intervention 16 juin 2005
19 avril 2005 à 11:41
Et bah non pas de chance, c'est pas ça non plus,
Merci quand même pour cette aide, c'est cool.

JIMM
0
Starec Messages postés 152 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 5 mars 2007
19 avril 2005 à 13:01
Je pense à un truc Recordset est un nom réservé, fait une déclaration

dim rst as DAO.Recordest et remplace tous les Recordset par rst.

Starec
0
jimluis Messages postés 90 Date d'inscription jeudi 17 mars 2005 Statut Membre Dernière intervention 16 juin 2005
19 avril 2005 à 13:22
j'ai deja essayé ça , ça marche pas non plus, lol
C'est un probléme trés bizarre, mais ou est la solution.
Merci pour l'aide.

JIMM
0
Dje69r Messages postés 35 Date d'inscription vendredi 7 mars 2003 Statut Membre Dernière intervention 11 septembre 2005
19 avril 2005 à 14:19
En fait tu veux faire quoi ?
Car pour recuperer le recorset d'une table a la con perso je fais ca :

Set MaBase = OpenDatabase("c:\DB1.mdb")
Set MaReq = MaBase.CreateQueryDef("")
MaReq.SQL = "SELECT DISTINCT TypeProduit FROM produit"
Set MonRecordset = MaReq.OpenRecordset()

Je sais pas si ca peux t'aider...

Dje
0
Rejoignez-nous