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 une clause FROM variable


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 27
    Points
    27
    Par défaut Requete SQL avec une clause FROM variable
    Bonjour,
    Je travaille sur un projet de liste d'adhérents à plusieurs associations.
    J'ai créé une table avec la liste des associations et pour chaque associations, il se crée automatiquement une table à leur nom. J'aimerais maintenant obtenir une requête SQL (si possible avec la commande Access "DoCmd.RunSQL") qui me permette d'obtenir la liste des adhérents pour chaque associations. J'utilise une zone de liste modifiable qui me renvoie le nom de l'association. Une fois le nom de l'association obtenu, je vais chercher le nom de la table correspondante dans la table contenant la liste des associations, ce qui me donne une requête du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Select NomAdherent FROM (Select NomTable From ListeAssociation Where NomAssociation = '" & [Modifiable] & "');
    Requête qui bien entendu ne fonctione pas.
    J'espère avoir été le plus clair possible.
    Merci d'avance pour ceux qui se pencheront sur mon problème.

    P.s.: 1 Table ListeAssociation contient les champs "Nom" et "NomTable",
    1 table par association avec "NomAdherent"

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut

    à la place de [modifiable] met

    Starec

  3. #3
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    La commande Docmd.runsql ne s'applique que pour des requêtes Action (insert, update, delete).

    Pour la liste des tables ont peut également envisagé de mettre les 2 champs (association et nom de la table) dans la liste. La colonne Table serais cachée et on y fait référence en indiquant le N° de la colonne.

    Me.maliste.column(0) si c'est la première
    Me.maliste.column(1) si c'est la deuxième.

    Cette méthode vous affranchie de la recherche du nom de la table.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut Re: Requete SQL avec une clause FROM variable
    Citation Envoyé par aCe_GiK
    Bonjour,
    Je travaille sur un projet de liste d'adhérents à plusieurs associations.
    J'ai créé une table avec la liste des associations et pour chaque associations, il se crée automatiquement une table à leur nom. J'aimerais maintenant obtenir une requête SQL (si possible avec la commande Access "DoCmd.RunSQL") qui me permette d'obtenir la liste des adhérents pour chaque associations. J'utilise une zone de liste modifiable qui me renvoie le nom de l'association. Une fois le nom de l'association obtenu, je vais chercher le nom de la table correspondante dans la table contenant la liste des associations, ce qui me donne une requête du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Select NomAdherent FROM (Select NomTable From ListeAssociation Where NomAssociation = '" & [Modifiable] & "');
    Requête qui bien entendu ne fonctione pas.
    J'espère avoir été le plus clair possible.
    Merci d'avance pour ceux qui se pencheront sur mon problème.

    P.s.: 1 Table ListeAssociation contient les champs "Nom" et "NomTable",
    1 table par association avec "NomAdherent"
    Hello,

    votre modèle conceptuel paraît un peu étrange ... avec une table par Association ... en revanche deux remarques :
    1- DoCmd.RunSQL ne renverra jamais rien avec une requête SELECTION, voir du côté des Recordset
    2- passer le nom de table en variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim strTable as String, strSQL as String
    Dim rec as DAO.Recordset
    strTable = DLookUp("NomTable", "ListeAssociation", "[NomAssociation] = '" & [Modifiable] & "'")
    strSQL = "SELECT NomAdhérent FROM [" & strTable & "];"
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    sur l'événement change de ton modifiable avec une fonction modifie
    la clause from dans le querydef avec dao
    Elle est pas belle la vie ?

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Merci pour votre aide, ça fonctionne nikel maintenant.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Je tiens à préciser que la commande "DoCmd.RunSQL" Fonctionne parfaitement pour une requête de type sélection (ainsi que les requêtes de mise à jour, de suppression ou de création de table) comme précisé dans l'aide d'Access. J'ai pu récuperer le nom de ma table grâce à une variable du type "Forms![NomFormulaire].[MaListe]" puisqu'il s'agissait d'une valeur se trouvant sur un autre formulaire.
    Merci

  8. #8
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    On doit pas avoir le même access

    Citation Envoyé par L'aide
    Variant requis. Expression chaîne qui correspond à une instruction SQL valide pour une requête action ou une requête définition des données. Elle utilise une instruction INSERT INTO, DELETE, SELECT...INTO, UPDATE, CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX ou DROP INDEX. Insérez une clause IN pour accéder à une autre base de données.
    En aucun cas on ne parle de sélection mais de requête Action !!

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Fais une 'tite recherche dans l'aide d'Access en tapant "Requete Selection" (pour faire plus simple, il s'agit juste des requêtes "Select....From..."). On s'est juste mal compris.

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

Discussions similaires

  1. optimisé une requete SQl avec une requete imbriqués
    Par fabien14 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/01/2009, 10h01
  2. requete sql avec une condition dans une zone de liste
    Par khilim1 dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/12/2008, 12h00
  3. [AJAX] requete SQL avec une fonction javascript
    Par Mitsu78 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/03/2008, 21h37
  4. SSIS - Requete sql avec nom de table variable
    Par IcedLand dans le forum Développement
    Réponses: 3
    Dernier message: 03/12/2007, 11h55
  5. SSIS - Requete sql avec nom de table variable
    Par IcedLand dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/12/2007, 11h55

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