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

  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

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 54
    Par défaut
    Bonjour,

    tu as tenté de faire afficher ton sql?
    Qu-est ce que ca donne?
    Me.Modifiable325 est bien un champ de type chiffre?

    Tu peux aussi vérifier que le SQL fonctionne avec juste la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Docmd.Runsql (SQL)
    Si tout est ok, c'est que ca doit venir de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm stDocName, acNormal, , critere
    .. et la, je ne connais pas cette fonction.

  8. #8
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Par défaut
    Attention!!!
    Citation Envoyé par vavou Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Docmd.Runsql (SQL)
    RunSQL fonctionne sur des requêtes actions (INSERT, UPDATE, DELETE).

    Sinon applique le Debug.print SQLDep pour voir le contenu de ta variable.

  9. #9
    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
    la commande Debug.print SQLDep ne fait rien. je l'ai positionné à la suite de ma requete, mais il ne se passe rien, ça bloque toujours. simplement, je n'ai plus de message d'erreur.
    même la plus simple des requêtes ne fonctionne pas. je suis persuadé que ça vient du lien entre mes 2 tables via une table de relation des identifiant. Mais là je ne maitrise plus.

  10. #10
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Par défaut
    Citation Envoyé par bloichot Voir le message
    la commande Debug.print SQLDep ne fait rien.
    C'est normal. Il faut après exécution ouvrir le code et à partir du menu faire
    Affichage=>Fenête d'Exécution. Cela va te montrer la valeur de ta variable SQLDep.

  11. #11
    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
    quand je selectionne dans ma liste, il me fait une erreur 3075 et ensuite je vois le code qui reprend correctement le SQL. Donc il n'accespte pas mon sql

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