Requete avec recordset ADODB vb6 et Access 2000 (jet 4.0)

Résolu
mathieuleclerc Messages postés 4 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 4 février 2007 - 21 sept. 2006 à 20:58
cs_bref Messages postés 4 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 5 mars 2009 - 26 févr. 2007 à 11:15
Bonjour,
Je fait appel à l'aide car j'éprouve de la difficulté à faire une requete SQL avec Visual Basic 6.0 (vb6) et Access 2000 (Jet 4.0)
J'ai passé beaucoup de temps et rien ne fonctionne encore... J'espère vous serrez en mesure de m'aider..:)




Voici la struture de mes trois tables


==========================================
EXTRUSION
==========================================
No_Extrusion   (Numérique)
Nom_Extrusion   (Text)
NOPVCA    (Text)
Rayon_Min_Extrusion  (Numérique)
Longueur_Extrusion  (Numérique)
Description_Extrusion  (Memo)
Image_Extrusion   (Numérique)




==========================================
TYPE_EXTRUSION
==========================================
No_Type_Extrusion  (Numérique)
Nom_Type_Extrusion  (Text)
Description_Type_Extrusion (Memo)
Image_Type_Extrusion  (Numérique)




==========================================
ASS_EXTRUSION_ET_TYPE_EXTRUSION
==========================================
No_Type_Extrusion  (Numérique)
No_Extrusion   (Numérique)


**********************************************************************************************************************************************************
Voici le contenu (à titre d'exemple)
**********************************************************************************************************************************************************


 


==========================================
EXTRUSION
==========================================
--------------------------------------------------------------------------------------------------------------------------
No_Extrusion    Nom_Extrusion    NOPVCA       Longueur_Extrusion       Description_Extrusion    Image_Extrusion
--------------------------------------------------------------------------------------------------------------------------
1                       42-4552              PV0987           2400                             Cadre 00-29438           43789
2                       00-29438            PV0346           2400                             Cadre 02-59439           43456
3                       02-59439            PV0659           2400                             Moulure 42-4552          43375
4                       53-5535              PV0997           2400                             Moulure 53-5535          43745
5                       92-45533            PV0956           2400                             Cadre 92-45533           48854
6                       42-4552              PV0974           2400                             Moulure 42-4552          46678
7                       93-44667            PV0355           2400                             Cadre 93-44667           48685
8                       42-4552              PV0234           2400                             Moulure 42-4552          48877
9                       42-4552              PV0865           2400                             Moulure 42-4552          47578


==========================================
TYPE_EXTRUSION
==========================================
---------------------------------------------------------------------------------------------------------
No_Type_Extrusion      Nom_Type_Extrusion      Description_Type_Extrusion      Image_Type_Extrusion
---------------------------------------------------------------------------------------------------------
1                                   Cadre                              Cadre                                       42534
2                                   Moulure                           Moulure                                    47542


==========================================
ASS_EXTRUSION_ET_TYPE_EXTRUSION
==========================================
--------------------------------------------
No_Type_Extrusion      No_Extrusion
--------------------------------------------
1                                   1
1                                   2
2                                   3
2                                   4
1                                   5
2                                   6
1                                   7
2                                   8
2                                   9
   
**********************************************************************************************************************************************************
 voici le code
**********************************************************************************************************************************************************
Private Sub Form_Load()
 'Déclaration
  Dim cnn As New ADODB.Connection   
  Dim rst As New ADODB.Recordset  
  Dim cmd As New ADODB.Command
  Dim Requete As String


 'Connexion BD
         Set cnn = New ADODB.Connection
         cnn.ConnectionString = "C:\bd.mdb"
         cnn.Open
 'Vérification
         If cnn.State <> adStateOpen Then
             MsgBox "erreur de connexion" & "bd.mdb", vbCritical, "Base de données"
             Exit Sub
         End If




 'Ouvrir recordset


         Requete = ""
         Requete = Requete & "SELECT EXTRUSION.Nom_Extrusion, EXTRUSION.Description_Extrusion "
         Requete = Requete & "FROM EXTRUSION "
         Requete = Requete & "INNER JOIN ASS_EXTRUSION_ET_TYPE_EXTRUSION "         Requete Requete & "ON TYPE_EXTRUSION.No_Extrusion EXTRUSION.No_Extrusion AND TYPE_EXTRUSION.No_Type_Extrusion=1"
            
         Set cmd = New ADODB.Command
         With cmd
                    .ActiveConnection = cnn
                    .CommandType = adCmdText
                    .CommandText = Requete
         End With
           
         Set rst = cmd.Execute


         Set dg.DataSource = rst


End sub
   
**********************************************************************************************************************************************************




L'Erreur que j'obtiens est sur ma ligne "Set rst = cmd.Execute" et le message est


"Run-time error '-02147217900(80040e14)':
 Erreur de syntaxe dans l'opération JOIN."


Ce que je voudrais faire est pourtant simple...


Si je connais la valeur du No_Type_Extrusion...


Je voudrais afficher dans une grille tout les extrusions qui font parti de ce type d'extrusion...


J'ai seulement besoin d'afficher les champs "Nom_Extrusion" et "Description_Extrusion" de la table EXTRUSION




Ex:


Si No_Type_Extrusion = 1 alors la grille affichera...




Nom_Extrusion      Description_Extrusion
-------------          --------------------------------
00-29438              Cadre 00-29438
02-59439              Cadre 02-59439
92-45533              Cadre 92-45533
93-44667              Cadre 93-44667




Alors c'est ca, j'espère que vous n'aurez pas autant de difficulter que moi.. je suis pas très habitué de faire ce genre de requête...
je crois qu'il me faut seulement mettre la bonne valeur dans ma Variable "Requete" mais si vous connaissez une methode plus efficace je serais preneur...:)

Merci beaucoup et bonne journée!


Mathieu
A voir également:

6 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 sept. 2006 à 21:44
Arf, ou ca y'est, je vois :
        Requete = "SELECT EXTRUSION.Nom_Extrusion,
EXTRUSION.Description_Extrusion FROM (EXTRUSION INNER JOIN
ASS_EXTRUSION_ET_TYPE_EXTRUSION"         Requete Requete & "ON ASS_EXTRUSION_ET_TYPE_EXTRUSION .No_Extrusion EXTRUSION.No_Extrusion) INNER JOIN TYPE_EXTRUSION ON TYPE_EXTRUSION.No_Type_Extrusion = ASS_EXTRUSION_ET_TYPE_EXTRUSION.No_Type_Extrusion WHERE TYPE_EXTRUSION.No_Type_Extrusion =1"

Ca devrait mieux marcher comme cà : tu utilise la table TYPE_EXTRUSION dans ta requête sans la lier avec les requêtes de sélection, donc forcément... y trouve pas !
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 sept. 2006 à 21:09
Essaye avec cette requête :
         Requete = "SELECT EXTRUSION.Nom_Extrusion, EXTRUSION.Description_Extrusion FROM EXTRUSION INNER JOIN ASS_EXTRUSION_ET_TYPE_EXTRUSION"         Requete Requete & "ON TYPE_EXTRUSION.No_Extrusion
EXTRUSION.No_Extrusion WHERE TYPE_EXTRUSION.No_Type_Extrusion =1"
0
mathieuleclerc Messages postés 4 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 4 février 2007
21 sept. 2006 à 21:15
J'ai le même numéro d'erreur! :S

Je sais pas si tu as une autre idée...

Merci beaucoup!

Mathieu
0
mathieuleclerc Messages postés 4 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 4 février 2007
21 sept. 2006 à 21:56
Héhé!!!! Ça marche!!!! Je suis vraiment content!!! :) Merci mille fois!!! :D


Bonne journée!


Mathieu
0

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

Posez votre question
cs_ginos Messages postés 1 Date d'inscription samedi 23 septembre 2006 Statut Membre Dernière intervention 23 septembre 2006
23 sept. 2006 à 05:03
salut à tous!!


je vpudrais demandé de l'aide  car j'ai unprojet à developper mais j'ai un probleme avec ma base de données. je n'arrive pas à utilmiser l'objet DATA  pour pouvoir lier ma base de données  avec l'application. j'utilise l'objet DATA  et kan je dois parametrer la propriété RecordSource , j'ai  un message " Format de base de données non reconu" je  ne comprends pas qu'est qu'il faut faire?


merci d'avance pour votre aide
0
cs_bref Messages postés 4 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 5 mars 2009
26 févr. 2007 à 11:15
Tu peux convertir ta base en access 97 et tu peut travailler avec. Moi aussi je rencontre le même problème!!!

[:D]
0
Rejoignez-nous