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 :

Requête UPDATE table/table


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut Requête UPDATE table/table
    Bonjour,

    Lors d’une précédente discussion (https://www.developpez.net/forums/d1...ivant-critere/) Jeannot45 m’a proposé une solution d’ajout d’article de table à table.

    J'ai adapté la proposition dans ma BD devis. J'ai donc créé un bouton "Ajouter les articles" avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Private Sub Commande58_Click()
    ' Déclaration des variables
        Dim l_strSql As String
     
        With DoCmd
            ' Initialisation de la requete d'Ajout dans la table DetailGENERATEUR
            l_strSql = "INSERT INTO DetailGENERATEUR ( GENEARTICLES, GENEDEVIS) " & _
                           "SELECT ArticlesGENERATEUR.IDARTGENE, DEVIS.NUMDEVIS " & _
                           "FROM ArticlesGENERATEUR INNER JOIN DEVIS ON ArticlesGENERATEUR.GeneType = DEVIS.TYPEGENRATEUR " & _
                            "WHERE (((DEVIS.NUMDEVIS)=[Formulaires]![FormDEVIS]![NUMDEVIS]) AND ((ArticlesGENERATEUR.GeneSelection)=True));"
            ' Désactivation des messages systeme
            .SetWarnings False
            ' exécution de la requete mise à jour
            .RunSQL (l_strSql)
     
            ' Initialisation de la requete de mise à jour de la table ArticlesGENERATEUR
            l_strSql = "UPDATE ArticlesGENERATEUR SET GeneSelection = 0 WHERE GeneSelection = -1"
     
            ' Exécution de la requete Mise à jour de la table ArticlesGENERATEUR
            .RunSQL (l_strSql)
            ' réactivation des messages systeme
            .SetWarnings True
        End With
     
        ' Réactualisation de l'affichage du sous formulaire
        Me.SFormDETAILGENE.Requery
    End Sub
    L'insertion de la table ARTICLE vers la table DETAIL se fait.

    Le problème est que si je modifie la désignation ou le prix depuis le devis, la fiche Article sélectionnée est également modifiée. Est-il possible d'adapter le code en mode ajout dans le formulaire DETAIL pour que les modifications saisies dans le devis n'affectent pas la fiche Article ?

    Avec mes remerciements,

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    bonjour,
    il faut revoir la conception de ta table T_DetailDevis en ajoutant le champ LibelArticle, puis en modifiant la requête (propriété Source du sous-formulaire) SF_DetailDevis en enlevant la jointure avec T_ArticlesChauffage ou plus simplement en remplaçant la requête par la table T_DetailDevis.
    Du coup, il faut revoir aussi la requête d'insertion pour ajouter le libellé dans la table T_DetailDevis
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Je viens de lire les échanges du lien que tu as indiqué ici et je suis un peu étonné de la méthode utilisée pour lister dans le SFormArticlesGENERATEUR les articles qui sont du TypeGene sélectionné dans le formDevis. Ce qui t'oblige avec la méthode de Jeannot45, que je salue au passage, de créer le SFormDETAILGENE et d'utiliser la sub que tu as adapté pour ajouter l'article.

    Onglet Données des champs concernés passer Activé = Non
    Images attachées Images attachées   
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

Discussions similaires

  1. Requête update à partir d'une autre table
    Par amiral thrawn dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/02/2024, 11h40
  2. [AC-2003] Requête UPDATE sur une table sans relation
    Par SIGER_971 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 09/07/2009, 09h02
  3. Mise à jour table: sous requête UPDATE
    Par aiss57 dans le forum Requêtes
    Réponses: 7
    Dernier message: 27/04/2009, 15h18
  4. Requète UPDATE avec sous-requète dans la même table.
    Par Selenite dans le forum Langage SQL
    Réponses: 6
    Dernier message: 16/03/2009, 15h04
  5. Requête UPDATE qui rappelle la même table
    Par Linio dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/06/2007, 09h54

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