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

IHM Discussion :

Listes à choix multiples en cascade / Code SQL [AC-2013]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Femme Profil pro
    Ingénieur technique
    Inscrit en
    Juin 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur technique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 29
    Points : 15
    Points
    15
    Par défaut Listes à choix multiples en cascade / Code SQL
    Bonjour à tous,

    après quelques jours de recherches (quasiment) infructueuses je me résous à créer un sujet afin de trouver une solution à mon problème.
    Je possède une base de données contenant une valeur numérique affectée à un équipement avec plusieurs paramètres. Je ne peux détailler ici ces paramètres/valeurs, mais les champs de ma base de données sont du type :

    Equipement | Paramètre 1 | Paramètre 2 | Paramètre 3 | ... | Valeur Numérique

    Etant donné le nombre d'enregistrements (plusieurs centaines), je voudrais créer un formulaire permettant de faire des recherches dans la base de données et de copier le résultat de ces recherches dans une seconde table (qui permettrait d'obtenir la valeur numérique totale pour l'ensemble d'équipements choisi).

    Mon formulaire possède une série de listes déroulantes en cascade qui fonctionnent sans problème sans choix multiple. Pour cela, dans la feuille de propriétés des listes "asservies", j'ai renseigné à Données/Contenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT Donnees.[Paramètre2] FROM Donnees WHERE Donnees.[Paramètre1]=[Forms]![Formulaire]!Paramètre1];
    J'ai ensuite voulu refaire ceci en ayant des listes à choix multiples, et j'ai alors modifié le code ci-dessus comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT Donnees.[Paramètre2] FROM Donnees WHERE Donnees.[Paramètre1] In ([Forms]![Formulaire]![Paramètre1]);
    L'idée était de rechercher parmi les termes renseignés dans la première liste (d'où le "In"), mais cela ne fonctionne pas. J'ai remplacé les arguments du In par une liste de paramètre (du type "Item1", "Item2",...) et cela fonctionne sans soucis.

    Quelqu'un pourrait-il m'aiguiller sur la source du problème ? J'avais vu cette syntaxe du sur ce sujet (qui l'utilise dans une requête, ce que j'ai également tenté sans succès): http://www.developpez.net/forums/d11...ia-formulaire/

    Merci d'avance pour votre aide !

  2. #2
    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
    Bonjour,

    Je me suis arrêté ici :
    Etant donné le nombre d'enregistrements (plusieurs centaines), je voudrais créer un formulaire permettant de faire des recherches dans la base de données et de copier le résultat de ces recherches dans une seconde table (qui permettrait d'obtenir la valeur numérique totale pour l'ensemble d'équipements choisi).
    Pourquoi ne pas utiliser une requête de sélection ou encore la clause where du formulaire. Je ne comprends pas ce désir de ce compliquer l'existence en dupliquant les données.

    Concernant le in() il faut utiliser la bonne syntaxe qui est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table.colonne in(valeur, valeur, valeur,...)
    Penser que lui fournir la liste suffira à SQL pour se débrouiller c'est largement présumer des capacités de celui-ci SQL. SQL et ACCESS sont 2 environnements différents même s'ils fonctionnent de concert.

    Construit ta liste via VBA puis concatène-la à la chaine SQL pour obtenir la bonne syntaxe.
    Note que IN() possède un tuto appliqué aux listes ACCESS :

    http://loufab.developpez.com/tutorie.../operateur-in/

    Cordialement,
    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

  3. #3
    Membre à l'essai
    Femme Profil pro
    Ingénieur technique
    Inscrit en
    Juin 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur technique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    l'objectif final (que j'aurais dû préciser) est de créer un petit outil de calcul :
    L'utilisateur doit pouvoir calculer la valeur numérique totale sur un ensemble d'équipements. Pour cela je pensais lui faire remplir une table via le formulaire qui irait puiser les données dans la table contenant les valeurs pour tous les équipements/paramètres. Cette table pourrait ensuite être exportée au format Excel pour une utilisateur ultérieure.
    Le formulaire aurait uniquement pour but de faciliter le choix des données et "d'automatiser" le remplissage de la seconde table (plutôt que de chercher soit même chaque info et de copier coller ça ailleurs).
    Si par "dupliquer les données" vous entendez remplir la seconde table avec les données sélectionner, c'est dans ce but de calcul et de réutilisation.

    Etant novice en Access (j'apprends "sur le tas" au fur et à mesure de ce dont j'ai besoin), j'avoue ne pas connaitre l'ensemble des possibilités.

  4. #4
    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
    Effectivement si le choix des enregistrements se fait sur la base de critères différents les uns des autres et qu'ils sont très nombreux (ceci n'était pas clairement énoncé dans ta description) on peut envisager la solution de copie, comme on pourrait envisager la copie de l'ID uniquement et travailler avec des requêtes avec jointures.

    L'export vers Excel ne doit pas être un fait déterminant pour l'utilisation de la solution de duplication de l'enregistrement complet. En effet il existe une méthode de copie de recordset entre ACCESS et EXCEL ce qui rend la création d'une table caduque. La source d'un recordset peut être une table, une requête Select ou encore l'objet éponyme du formulaire/état.

    Comme tu le vois de nombreuses solutions pour un même problème.

    Sinon pour le IN() mes conseils ne changent pas.
    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

  5. #5
    Membre à l'essai
    Femme Profil pro
    Ingénieur technique
    Inscrit en
    Juin 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur technique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    et désolée pour les nouvelles excessivement tardives... Devant le peu de temps qui m'était alloué pour faire cet outil et surtout le peu d'enjeu qu'il y avait derrière, je me suis finalement rabattue sur une solution "moins glamour" : la base de données est dans une feuille de calcul, un bouton permet d'extraire les données à retenir dans une deuxième feuille et de les utiliser.
    Dois-je passer tout de même le sujet en résolu même si ce n'est pas vraiment le cas ?

  6. #6
    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
    Bonjour,
    si tu considères qu'elle n'évoluera plus il vaut mieux la tagguer Résolue.

    Cordialement,
    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

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

Discussions similaires

  1. Listes à choix multiples en cascade
    Par simjen dans le forum VBA Access
    Réponses: 0
    Dernier message: 02/02/2015, 18h46
  2. [MySQL] Liste à choix multiples et syntaxe SQL
    Par nicomax34 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 17/10/2008, 17h38
  3. Utilisation des liste à choix multiples
    Par mic79 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/07/2005, 11h40
  4. recuperer valeur liste choix multiple
    Par gabychon dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/06/2005, 11h47
  5. [Débutant][JSP] récupération liste choix multiple
    Par Jovial dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/05/2004, 13h59

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