IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Liste déroulante et requête


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Par défaut Liste déroulante et requête
    Au secours, je flanche : je veux lancer un formulaire depuis une requete VBA.
    j'ai une liste déroulante qui me renvoi un ID et je fais ma requête en prennant cet ID en critère. ça marche en requete SQL, mais pas en vba. Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Modifiable325_AfterUpdate()
        stDocName = "Contact_Org"
        SQLdep = " SELECT DISTINCT RequeteTOTALE.T_Contact.ID_Contact "
        SQLdep = SQLdep & "FROM RequeteTOTALE.T_Contact LEFT JOIN RequeteLIEN ON "
        SQLdep = SQLdep & "RequeteTOTALE.T_Contact.ID_Contact = RequeteLIEN.T_Contact.ID_Contact "
        SQLdep = SQLdep & "WHERE RequeteLIEN.L_Lien.ID_Lien = "
        MonSQL = SQLdep & Me.Modifiable325 & " ORDER BY RequeteTOTALE.T_Contact.ID_Contact ; "
        DoCmd.OpenForm stDocName, acNormal, , MonSQL
    End Sub
    j'ai même réduit la requête au minimum pour faire un test et toujours rien. avez-vous une idée. Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 226
    Par défaut
    ton SQL semble OK ....
    sauf la formulation d'ouverture du formulaire ....

    je reformulerais ainsi ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim critere as String
     
    SQLdep = "SELECT DISTINCT RequeteTOTALE.T_Contact.ID_Contact " _
        & "FROM RequeteTOTALE.T_Contact LEFT JOIN RequeteLIEN ON RequeteTOTALE.T_Contact.ID_Contact = RequeteLIEN.T_Contact.ID_Contact " _
        & "ORDER BY RequeteTOTALE.T_Contact.ID_Contact;"
     
    critere="RequeteLIEN.L_Lien.ID_Lien =" & Me.Modifiable325 
    DoCmd.OpenForm stDocName, acNormal, , critere
    en supposant que SQLdep alimente la "Source" du formulaire

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 226
    Par défaut
    Je m'intéroge sur l'appellation d'un de tes champs : T_Contact.ID_Contact

    que tu retrouves dans les tables (ou requetes)
    RequeteTOTALE et RequeteLIEN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT RequeteTOTALE.T_Contact.ID_Contact  ....
    je crains (mais pas certain ??? !!!! ) que VB n'aimes point cette forme de nomenclature.

    Aussi, ce serait peut-être à propos de remplacer par quelques choses de plus simples à digérer, tel que "T_Contact_ID"

    UN AUTRE AVIS SUR LA QUESTION ???

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Par défaut
    Pour récuperer la Valeur de ta liste défilante que je suppose se trouve sur ton Formulaire, utilise ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     " & Me!NBRE_JOURS_CONGE.Value & "
    avec le guillemets si c'est une Chaîne de Caractère, si numérique tu enlèves les Guillemets.

  5. #5
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Par défaut Malheureux
    j'ai essayé de modifier la requete pour la faire aller dans ton sens, mikeGo20. mais je n'y arrive pas non plus. pour les champs trop long puisqu'il s'agit de requetes, j'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    idCont = "RequeteTOTALE.T_Contact.ID_Contact"
    mais ça ne marche pas non plus. Je ne sais pas comment rendre le nom de champ plus simple puisqu'il est issue de requetes dont je me sert.
    Enfin pour faressam, je n'ai pas de souci pour récupérer la valeur de ma liste, mais bien pour retrouver les ID_Contact qui sont en relation avec cette valeur.
    comme dit mikeGo20, ma requête est bonne, mais une fois en code, access me la renvoie avec l'erreur 3075

  6. #6
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Par défaut
    Quelqu'un aurait-il une idée ?
    Je n'y arrive toujours pas : j'ai ma liste : L_Lien, ma table contact : T_Contact et ma relation reprennant un ID_Contact et un ID_Lien (R_Lien).
    je voudrais en selectionnant un ID_Lien, lancer un formulaire selectionnant les ID_Contact qui sont en relation avec.
    Pouvez vous m'aider

Discussions similaires

  1. liste déroulante pour requête
    Par swissmade dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 16/08/2007, 09h52
  2. [VBA] liste déroulante avec requête
    Par dalmasma dans le forum VBA Access
    Réponses: 17
    Dernier message: 16/07/2007, 14h52
  3. Liste déroulante sur requête
    Par guiguikawa dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 21/06/2006, 12h31
  4. [MySQL] Liste déroulante et requète
    Par Mr Capone dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 28/03/2006, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo