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

Requêtes et SQL. Discussion :

Requete SQl avec variable d'un combobox


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 44
    Par défaut Requete SQl avec variable d'un combobox
    Bonsoir à tous,
    je souhaite créer un userform avec une combobox (liste préremplie qui correspond au nom de mes tables).
    L'utilisateur choisit donc le nom de la table et je souhaite intégrer ce dernier dans une requete sql : le from va prendre la variable choisie du combobox.
    A terme, le but est de faire modifier les données qui arrivent dans un sous formulaire (pour montrer les données).

    Je ne souhaite pas passer avec plusieurs formulaires (j'ai une dizaine de table) et le vba sera assez compliqué pour prendre en compte tous les cas.

    Je vous remercie de votre aide.

    Bonne soirée et merci pour votre aide.

  2. #2
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonjour, cela pourra se traduire par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sql="SELECT [" & Me!liste & "].Nomchamp1, [" & Me!liste & "].NomChamp2, ..... FROM [" & Me!liste & "];"
     
    Me!SousFormulaire.SourceObject = sql
    Me!SousFormulaire.Requery
    Les crochets sont utiles si le nom de la table comprend des espaces.
    On modifie donc la source de données du sous-formulaire, un rafraichissement est necessaire pour afficher les nouvelles données

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 44
    Par défaut
    Bonjour,
    merci pour te réponse,
    si je me trompe pas la solution que tu me propose est du VBA

    En fait, je cherche à faire cette requete dans les propriétés (données; contenu) du formulaire et non dans vba.
    Pour une raison assez simple: c'est que le vba ne peut changer les données sources du sous formulaire (enfin je suppose).
    Dans l'idée, cela fonctionnerait comme une requete group by dans un formulaire.

    Merci.
    Bonne journée.

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Par défaut
    bonjour,
    c'est que le vba ne peut changer les données sources du sous formulaire (enfin je suppose)
    et non tu supposes mal on peut "presque" tout faire en VBA et notre ami
    helas t'a donné même le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me!SousFormulaire.SourceObject = sql
    Me!SousFormulaire.Requery

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 44
    Par défaut
    Ok,
    cependant il n'accepte pas la requete comme source object : il y a une erreur 2124 (Nom formulaire non conforme aux règles d'affectation des noms objets microsoft office access).
    En essayant une string pas de probleme en particulier.
    J'ai modifié la requête de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    rte = "SELECT [" & Me!liste & "].[""Numéro""] FROM [" & Me!liste & "];"
    Me!affichage.SourceObject = rte
    Me!affichage.Requery
    J'espere qu'en temps, la mise à jour sera rapide (200 000 lignes par table à peut près).

    et non tu supposes mal on peut "presque" tout faire en VBA
    Si VBA savait gérer les subset sum cela m'arrangerait bien aussi (mais c'est pour la partie excel).

    Merci en tout cas pour votre aide.
    Bonne journée

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 44
    Par défaut
    Ok j'ai trouvé la solution:
    sourceobjet n'admet de requête sql il faut don contourner le probleme :
    Me!liste
    et pour faire venir une table:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me!SousFormulaire.SourceObject = "Table." & Me!liste
    Me!SousFormulaire.Requery
    Merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requete SQL avec variable php
    Par Darkyl dans le forum Langage
    Réponses: 8
    Dernier message: 24/06/2011, 21h06
  2. [AC-2007] Requete SQL avec variables
    Par Greg47 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 26/05/2010, 19h07
  3. requete sql avec variable feuil-range
    Par jokenjo dans le forum Excel
    Réponses: 6
    Dernier message: 18/03/2008, 15h47
  4. requete sql avec variable
    Par stefon dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 02/08/2006, 16h29
  5. requete sql avec variable
    Par Mihalis dans le forum Bases de données
    Réponses: 15
    Dernier message: 07/04/2006, 10h17

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