Résultats de 1 à 2 sur 2

Sujet : Petit problème en VB 6

  1. #1
    Visiteur MP
    Visiteur MP

    Petit problème en VB 6

    Bonjour tout le monde,

    J\'ai un petit problème de prog. Lorsque j\'utilise ce code
    Code:
    Private Sub Commande0_Click()
      Dim ValSQL As String
    Dim Numéro
    Dim bds As DAO.Database, rst As DAO.Recordset
    Dim appexcel As Excel.Application
    Dim wbexcel As Excel.Workbook
    \'La déclaration Numéro va nous servir pour connaître le numéro de matricule.
    
    
    Set appexcel = CreateObject(\"Excel.Application\")
        appexcel.Visible = True
        Set wbexcel = appexcel.Workbooks.Open(\"C:\\Documents and Settings\\Administrateur\\Bureau\\Disque amovible (E)\\ACCESS\\Publipostage/PublipostagePharma1Sess1.xls\")
        
        \'Voici la programmation de la boite servant à demander le numéro de matricule:
        
        Numéro = InputBox(\"Quel est le numéro de l\'étudiant?\")
        
        
        \'Maintenant on attaque la programmation de ta requête:
    
        ValSQL = \"SELECT *\" _
    & \"FROM [rqt Pharma 1 1998] LEFT JOIN [rqt Cursus] ON [rqt Pharma 1 1998].Matricule = [rqt Cursus].Matricule\" _
    & \"WHERE ([rqt Pharma 1 1998].Matricule = \' \" & Numéro & \" \');\"
    
    \'Donc en décrypter la requêt sélectionne dans ta requête pharma 1 1998, l\'enregistrement qui as
    \'le numéro de matricule correspondant au numéro taper.
    
    \'Voici le code qui permet de lancer la requête
    Set bds = CurrentDb
    Set rst = bds.OpenRecordset(ValSQL)
    
    \'Ensuite nous allons se placer sur le premier enregistrement sélectionner par la requête:
    
    rst.MoveFirst
    
    \'On appelle la fauille du fichier ouvert:
    
    appexcel.Sheets(\"Feuil1\").Select
    
    \'Et il ne rest plus qu\'a remplir le fichier Excel:
    appexcel.Cells(1, 13) = rst2![MATRICULE]
            appexcel.Cells(1, 14) = rst2![NOM]
           appexcel.Cells(1, 15) = rst2![LIEU DE NAISSANCE]
            
           \'Attention la cellule (1,2) correpond à la cellule (B,1);
    
    End Sub
    il me demande le numéro de matricule via une boite de dialogue (jusque là c\'est nikel) mais dès que j\'ai introduit le matricule et que j\'appuie sur OK il me dit

    \"Erreur d\'éxécution 3296\" Expression de jointure non supportée.

    et l\'aide d\'access me dit :

    Expression de jointure non gérée. (Erreur 3296)
    Causes possibles :

    Votreinstruction SQL contient plusieursjointures dans lesquelles les résultats de la requête peuvent différer en fonction de l\'ordre dans lequel les jointures sont effectuées. Vous pouvez créer une requête distincte pour effectuer la première jointure, puis inclure cette requête dans votre instruction SQL.
    L\'instruction ON de votre opération JOIN est inachevée ou contient trop de tables. Vous pouvez mettre votre expression ON dans une clause WHERE.
    Quelqu\'un pourrait-il s\'il vous plait m\'aider ?

    Merci d\'avance pour votre aide
    David

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    245
    Bonjour,
    Si vous voulez effectuez une jointure il faut spécifier les noms des champs que vous utilisez
    donc au lieu de mettre
    SELECT *
    mettez
    SELECT [rqt Pharma 1 1998].champ,.....

    ensuite est ce que le N° de matricule est Numérique ? parce que si c\'est le cas il faut pas mettre [quote([rqt Pharma 1 1998].Matricule = \' \" & Numéro & \" \');\"
    mais ceci
    ([rqt Pharma 1 1998].Matricule = \" & Numéro & \"\"

    au revoir
    :wink:
    La réussite est au bout de l'effort

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé