Erreur d'exécution :ce pilote ODBC ne prend pas en charge les propriétés demandé
magiabd
Messages postés12Date d'inscriptionjeudi 10 septembre 2009StatutMembreDernière intervention31 mai 2011
-
30 mai 2011 à 11:13
4u4me4us
Messages postés780Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention30 octobre 2013
-
31 mai 2011 à 15:37
bonjour;
j'ai une autre application sur vb6:
j'ai une listes de produits quand je sélectionne sur un produit des matières premières qui le compose s'affiche dans une liste 2 et des données(réf_produits,fournisseur,taille produit,quantité produit)s'affichent dans un msflexgrid.
j'ai comme table:
produits(ref_pdt,designation) <-------------table produits
mp(ref_MP,designation,fournisseur)<--------table matière première
pdt_mp(id,ref-pdt,ref_MP)<-----------------table produits et matière première
taille(id_t,ref_pdt,qte_pdt) <---------------table taille
j'ai fait le code ci dessous un erreur d’exécution s'apparente: ce pilote ODBC ne prend pas en charge les propriétés demandées.
voici mon code:
Private Sub List1_Click()
n = List1.ListIndex 'evenement selectionné
C = List1.List(n)
Set rsi = New ADODB.Recordset 'recuperation des informtions ds la base
rsi.CursorLocation = adUseServer
List2.Clear 'pour faire vider la liste 2
rsi.Open "select produits.*, ref_MP from pdt_mp,produits where pdt_mp.ref_pdt = produits.ref_pdt and pdt_mp.ref_pdt='" & C & "'", DB_connexion
Do While Not rsi.EOF 'tant qu'il existe
Dim a As String 'declaration
a = rsi.Fields("ref_MP").Value
List2.AddItem (a)
'************************************ ajouter *********************
If DB_connexion.State = adStateClosed Then
MsgBox "Impossible d'ouvrir la BD", vbCritical, "Problème"
Exit Sub
End If
Set rsi2 = New ADODB.Recordset 'recuperation des informtions ds la base
rsi2.CursorLocation = adUseServer
Dim Reqt As String
Reqt "select ref_pdt,fornisseur,id_taille,qte_pdt from produits,pdt_mp,taille where pdt_mp.ref_pdt produits.ref_pdt and pdt_mp.ref_pdt='" & C & "'"
rsi2.Open Reqt, DB_connexion, adOpenStatic, adLockPessimistic
'rsi2.Open "select ref_pdt,fournisseur,id_taille,qte_pdt from produits,pdt_mp,taille where pdt_mp.ref_pdt = produits.ref_pdt and pdt_mp.ref_pdt='" & C & "'", DB_connexion, adOpenStatic, adLockPessimistic
'************************************ ajouter *********************
If rsi2.State = adStateClosed Then
MsgBox "Impossible d'ouvrir la Table", vbCritical, "Problème"
DB_connexion.Close
Exit Sub
End If
If rsi2.EOF Then
rsi2.Close
DB_connexion.Close
MsgBox "Aucun enregistrement disponnible", vbCritical, "Problème"
MFG.Rows = 1
Exit Sub
End If
'************************************fin ajouter *********************
Do While Not rsi2.EOF 'tant qu'i existe
MFG.Rows = MFG.Rows + 1
MFG.TextMatrix(MFG.Rows - 1, 1) = rsi2.Fields("ref_pdt").Value
MFG.TextMatrix(MFG.Rows - 1, 2) = rsi2.Fields("fournisseur").Value
MFG.TextMatrix(MFG.Rows - 1, 3) = rsi2.Fields("id_taille").Value
MFG.TextMatrix(MFG.Rows - 1, 4) = rsi2.Fields("qte_pdt").Value
4u4me4us
Messages postés780Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention30 octobre 20133 30 mai 2011 à 15:37
teste openRecordset Reqt, DB_connexion, adOpenStatic, adLockPessimistic
Aussi c peut être que tu as pris la mauvaise référence ADO. Tu peux garder ton code comme il est et changer la référeance avec le 2.0 pour voir si ce la marche.
Tu peut de toutes les façons regarder l'explorateur d'objet pour voir les methodes de ADO.
magiabd
Messages postés12Date d'inscriptionjeudi 10 septembre 2009StatutMembreDernière intervention31 mai 2011 30 mai 2011 à 16:00
SALUT.
quand j'ai remplacé par openRecordset Reqt, DB_connexion, adOpenStatic, adLockPessimistic une erreur s'est produit:procédure sub ou fonction non définie.
et quand j'ai changé la référence toujours le même problème : ce pilote ODBC ne prend pas en charge les propriétés demandées.
je suis bloquée et j'ai pas pu touvé le problème.
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
magiabd
Messages postés12Date d'inscriptionjeudi 10 septembre 2009StatutMembreDernière intervention31 mai 2011 30 mai 2011 à 17:21
je m'excuse ;dans mon code j'ai:
un rsi celui la marche j'ai pu récupérer toute la liste des produits
un rsi2 celui ne marche pas quand j’exécute un erreur se produit dans la ligne rsi2.Open Reqt, DB_connexion, adOpenStatic, adLockPessimistic ;
je sais pas si le problème vient de mal conception de la requête malgrès je la trouve logique!!!
merci de me répondre.
4u4me4us
Messages postés780Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention30 octobre 20133 31 mai 2011 à 09:59
Tu as vu la différence entre tant rsi qui fonctionne ("select produits.*, ref_MP from pdt_mp,produits where pdt_mp.ref_pdt = produits.ref_pdt and pdt_mp.ref_pdt='" & C & "'", DB_connexion)
Et le rsi2 qui ne fonctionne pas(select ref_pdt,fornisseur,id_taille,qte_pdt from produits,pdt_mp,taille where pdt_mp.ref_pdt = produits.ref_pdt and pdt_mp.ref_pdt='" & C & "'" )
Dans le rsi2 tu ajoute la table taille et le champ id_taille. Je te propose de les enlever et de tester. Si rsi2 fonctionne après cela tu as le problème.
magiabd
Messages postés12Date d'inscriptionjeudi 10 septembre 2009StatutMembreDernière intervention31 mai 2011 31 mai 2011 à 10:54
bonjour;
oui j'ai essayé d'enlever les champs de la table taille (id_taiille,qte_pdt) et la table mp (fournisseur) s'est marchééééé!!
donc le problème vient de la jointure des table!!!!
est ce que vous pouvez m'aider s'il vous plait?
et merci
magiabd
Messages postés12Date d'inscriptionjeudi 10 septembre 2009StatutMembreDernière intervention31 mai 2011 31 mai 2011 à 11:24
oui;les table sont dans la base djo3 et j'ai 4 tables:
produits(ref_pdt,designation)
mp(ref_MP,designation,fournisseur)
pdt_mp(id,ref_pdt,ref_MP)
taille(id_taille,ref_pdt,qte_pdt)
4u4me4us
Messages postés780Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention30 octobre 20133 31 mai 2011 à 11:42
As tu vu que dans ta req. select ref_pdt,fornisseur,id_taille,qte_pdt from produits,pdt_mp,taille where pdt_mp.ref_pdt = produits.ref_pdt and pdt_mp.ref_pdt='" & C & "'"
Tu sélection le champs fornisseur. Si j'en crois ton message d'avant le champ et dans la table mp Alors que ta table mp tu ne l’utilise pas dans la req.
magiabd
Messages postés12Date d'inscriptionjeudi 10 septembre 2009StatutMembreDernière intervention31 mai 2011 31 mai 2011 à 11:47
le meme probleme toujours avec : Reqt = "select ref_pdt,fournisseur,id_taille,qte_pdt from produits,pdt_mp,taille,mp where pdt_mp.ref_pdt = produits.ref_pdt and pdt_mp.ref_pdt='" & C & "'"
je me sens que je suis perdue avec cette requete!!!
4u4me4us
Messages postés780Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention30 octobre 20133 31 mai 2011 à 12:06
Il faut supprimer tout ambiguïté change ta req de la façon suivante(Attention il faut adapter)
"select produits.ref_pdt,mp.fournisseur,taille.id_taille,taille.qte_pdt from produits,pdt_mp,taille,mp where pdt_mp.ref_pdt = produits.ref_pdt and pdt_mp.ref_pdt='" & C & "'"
Tu as vu g pas utilisé pdt_mp donc je pense que tu peux la supprimer de la req.
De plus soir sur de la valeur de ta variable C elle ne peut pas être empety par exemple. Soi sir que ref_pd soi bien un champ texte.
magiabd
Messages postés12Date d'inscriptionjeudi 10 septembre 2009StatutMembreDernière intervention31 mai 2011 31 mai 2011 à 12:27
je l'ai testé comme vous m'avez écrit toujours même problème; j'ai enlevé pdt_mp c'est toujours même erreur;je pense qu'on dois faire la jointure avec trois table produits,pdt_mp et taille mais comment ça se fait!!!!!!
je pense qu'on dois laisser la table pdt_mp car j'ai ajouté cette table parce que un seul produit est construit par n matière première(mp)