Requete avec recordset ADODB vb6 et Access 2000 (jet 4.0) [Résolu]

mathieuleclerc 4 Messages postés mardi 10 janvier 2006Date d'inscription 4 février 2007 Dernière intervention - 21 sept. 2006 à 20:58 - Dernière réponse : cs_bref 4 Messages postés mercredi 1 décembre 2004Date d'inscription 5 mars 2009 Dernière intervention
- 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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 21 sept. 2006 à 21:44
3
Merci
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 !

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 21 sept. 2006 à 21:09
0
Merci
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"
Commenter la réponse de cs_DARKSIDIOUS
mathieuleclerc 4 Messages postés mardi 10 janvier 2006Date d'inscription 4 février 2007 Dernière intervention - 21 sept. 2006 à 21:15
0
Merci
J'ai le même numéro d'erreur! :S

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

Merci beaucoup!

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


Bonne journée!


Mathieu
Commenter la réponse de mathieuleclerc
cs_ginos 1 Messages postés samedi 23 septembre 2006Date d'inscription 23 septembre 2006 Dernière intervention - 23 sept. 2006 à 05:03
0
Merci
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
Commenter la réponse de cs_ginos
cs_bref 4 Messages postés mercredi 1 décembre 2004Date d'inscription 5 mars 2009 Dernière intervention - 26 févr. 2007 à 11:15
0
Merci
Tu peux convertir ta base en access 97 et tu peut travailler avec. Moi aussi je rencontre le même problème!!!

[:D]
Commenter la réponse de cs_bref

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.