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

Modélisation Discussion :

Ajout champs requête lien ODBC [AC-2013]


Sujet :

Modélisation

  1. #1
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut Ajout champs requête lien ODBC
    Bonjour à tous,

    Je suis une nouvelle fois face à un mur et m'en remet donc à vos précieux conseils.

    J'ai une base de donnée avec un lien ODBC contenant les informations dont j'ai besoin.

    Je crée une requête "SELECT" basée sur ma table ODBC afin d'organiser mes données comme je le souhaite, en regroupant par numéro de commande, date, quantité.

    Je souhaiterai, à partir d'un formulaire, rajouter une variable qui permettrai à l'utilisateur d'indiquer si la commande est clôturée ou non ("oui" ou "non").

    Mais je ne vois absolument pas comment réaliser cela étant donné que ma table source est un lien ODBC et non un import de table.

    Le but de la manœuvre est de voir l'état actuel des commandes (clôturées ou non).

    Merci d'avance pour vos idées et solutions

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour

    je propose la chose suivante: tu crees une table [CDE_Extension] qui comprend 2 champs
    - la cle unique de la commande (en cle unique sur cette table additionnelle)
    - un flag [cloture] oui/non

    après un rafraichissement ODBC tu lances une requete ajout de la table liee des commandes vers la table CDE_Extension. (les commandes qui y sont deja ne seront pas affectees)

    ensuite, ton formulaire doit avoir pour source une requete avec jointure entre Commande et CDE_Extension et tu peux y rajouter le champ [cloture] pour action de l'utilisateur.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Salut,

    Merci pour tes idées.

    J'avais également pensé à une requête ajout. Admettons que l'utilisateur ce soit trompé et veuille indiquer qu'une commande n'est en fait pas clôturée. Est-ce que cette modification sera prise en compte dans la table CDE_Extension ?

  4. #4
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    la table des extensions est independante de la table des commandes, le seul lien est l'identifiant commun qui sert a la jointure.
    Cette table est stockee sur le PC, et on la met a jour sur demande (cocher/decocher le statut)

  5. #5
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    J’ai essayé de suivre tes conseils.
    Voici ce que j’ai fait, je suis parti de ma table « Source_ODBC ».
    J’ai créé une requête ajout qui alimente la table « CDE_Extension », récupérant les champs dont j’ai besoin.
    A cette table j’ai rajouté un champ « Terminee » de type « Yes/No ».
    Il me reste à créer le formulaire de saisi permettant à l’utilisateur de cocher la case du champ « Terminee » en fonction de l’état de la commande.
    Mon problème est le suivant : je dois à chaque fois lancer ma requête ajout. Dès que je lance cette requête, elle me créé des doublons en m’ajoutant de l’information déjà ajouté auparavant.

    Voici un exemple de ma base. Ne pouvant pas mettre le lien ODBC je t’ai créé une table « Source_ODBC ».

    J’ai également créé le formulaire avec une liste déroulante basée sur le champ « Commande » de la table « CDE_Extension ». Le top serait d’afficher tous les codes articles correspondant à cette commande avec leur quantité mais je ne sais pas comment procédé.

    Encore merci pour ton aide c’est vraiment sympa !
    Fichiers attachés Fichiers attachés

  6. #6
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    il y a quelques evolutions par rapport a ton besoin initial, il semble que tu veuilles traiter [Terminer] a la ligne de commande et non a la commande elle meme

    pas de probleme, dans ce cas la table CDE_Extension ne doit comprendre que 3 champs: [Cde], [article] et [Termine] et il y a une cle unique sur le couple cde et article afin que la requete Ajout, ne cree pas de doublons

    le formulaire doit etre ouvert après le lancement de la requete Ajout

    ci joint fichier mis a jour
    Exemple_Ajout_Champ.zip

  7. #7
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Super accessisgood ça fonctionne parfaitement. Je n'avais pas pensé que la clé primaire permettait de ne pas avoir de doublons.
    Par contre lors du lancement de la requête ajout dans ma base j'ai ce message d'erreur:
    Nom : erreur.JPG
Affichages : 161
Taille : 37,8 Ko

    Connais-tu un moyen d'éviter cela?

    Encore merci!

  8. #8
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    il faut que tu cliques Yes pour lancer la procedure de chargement de la table CDE_Extension

    si vraiment tu ne veux pas voir ce message, il faut passer a un peu de code ou une macro

    par exemple tu crees une macro avec ces 2 commandes
    Setwarnings...No
    Openquery...Ajout (nom de la requite Ajout)

    en cliquant sur la macro, ca va charger CDE_Extension sans message

  9. #9
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Je vais faire comme cela.

    Par contre dans ma base je n'arrive pas à cocher la case "Terminee" dans le formulaire. J'ai également rajouté d'autres champs dont un champs "commentaire" mais impossible de mettre quoi que ce soit dedans. J'ai le message suivant qui apparait en bas à gauche "the recordset is not updateable"

    A quoi Est-ce dû à ton avis?

  10. #10
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    est ce que ca fonctionne sur la base que je t'ai envoye?

  11. #11
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Oui sur la base que tu m'as envoyé il n'y a pas de problème

  12. #12
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Envoie moi ta base que je jette un coup d'oeil

  13. #13
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    J'ai fait autrement.
    J'ai basé mon formulaire sur la table "CDE_Extension". En faisant cela, j'arrive à saisir de l'information dans le formulaire et alimenter la table CDE_extension.
    par contre, crois tu qu'il serait possible de créer une requête afin de supprimer les lignes de la table CDE_Extension qui ne figure plus dans la table ODBC?

    Merci encore

  14. #14
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    tu peux les laisser, ca ne derange pas, mais si vraiment tu veux les enlever, je ne sais pas les supprimer en 1 requite, une approche de solution est de creer un champ Oui/Non CDE_Extension.EstDansSource
    - une premiere requete update EstDansSource=Non
    - une deuxieme requete update EstDansSource=Oui si il y a un lien entre Source_ODBC et CDE_Extension sur les champs commande+Article
    - une troisieme requete supprime les records de CDE_Extension si EstDansSource=Non

    tout ceci peut s'automatiser dans la macro autoexec

  15. #15
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Merci pour ton aide.
    Je suis arrivé à ce dont j'avais besoin

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

Discussions similaires

  1. [AC-2007] Requête Ajout en VBA / Lien relatif d'une table
    Par Crachover dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 09/06/2010, 09h32
  2. [AC-2003] Ajout champ dans une table ODBC liée
    Par novice06 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 10/06/2009, 05h04
  3. Réponses: 2
    Dernier message: 07/02/2008, 11h45
  4. Impossible d'ajouter des liens ODBC
    Par champijulie dans le forum Administration
    Réponses: 1
    Dernier message: 29/10/2007, 13h38
  5. Erreur d'éxécution requête via lien ODBC
    Par ft035580 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 27/08/2006, 18h46

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