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 :

Créer ou modifier un enregistrement lié avec un seul champ d'une requete


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 45
    Points : 25
    Points
    25
    Par défaut Créer ou modifier un enregistrement lié avec un seul champ d'une requete
    Bonjour à tous et merci pour vos contributions,

    Ayant table1 et table2,
    Dans table1 : 3 champs : a (primaire), b et c (j'ai rempli quelques lignes de cette table pour l'exemple)
    Dans table2 : 3 champs : d (primaire), e et f

    Une relation avec intégrité ref lie ces 2 tables de a (1) vers e (plusieurs)

    J'ai créé une requete avec tous les champs de ces 2 tables et une jointure à gauche (tous sur table1)

    Ce qui se passe :
    Lorsque j'entre une valeur en premier en e qui correspond à a, cela rempli a, b et c automatiquement et c'est parfait. Par contre lorsque je rempli une valeur en premier en e qui ne correspond pas à a, cela me refuse l'enregistrement.
    Lorsque j'entre une valeur en premier en a qui n'existe pas déja, cela me permet d'enregistrer (et me rempli automatiquement e), c'est parfait. Par contre lorsque je rempli une valeur en premier en a qui correspond à un a existant, cela me refuse l'enregistrement.

    Bref, je comprends le fonctionnement mais moi je souhaiterais créer une requete avec un mode de fonctionnement différent. Je base un formulaire sur cette requete et je voudrais lier une textbox à un champ d'une requete afin de selectionner une ligne ou de la créer le cas échéant.

    Prenons un exemple concret : un utilisateur veut créer une facture, il a le choix dans son formulaire basé sur sa requete de selectionner des produits (listbox produits) parmi ceux existant (et les champ prix et description se remplissent automatiquement) ou, si le produit n'existe pas, l'utilisateur rempli le nom (toujours la meme listbox produit), le prix et la description et le produit est créé dans la base.

    J'espere avoir été clair.
    Merci de vos éclaircissement sur la construction de cette requete.

    Damien

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Bonjour,

    Pas clair, en tout cas pas assez en ce qui me concerne

    Pour aider, je te suggère de poster l'image des relations et celle de ton formulaire.
    Avec l'image du formulaire, un petit commentaire qui explique ce que tu voudrais.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    Ok, je saute la partie ou j'explique mes experimentations, c'est surement celle la qui n'est pas claire.

    Voici ma requete, la construction des tables et la relation peuvent etre facilement déduites de la construction de la requete
    [IMG]C:\requete.jpg[/IMG]

    Voici mon formulaire :
    [IMG]C:\formulaire.jpg[/IMG]

    En remplissant "e", il va me chercher automatiquement les valeurs "a", "b" et "c" ("a" étant la "source" de "e") et enregistre à table 2 "e" (identique à "a"), "f" et "g". Cela me convient.
    Par contre, ce que je voudrais, c'est qu'en cas d'inexistance de "source" a, quand je rempli "e", je puisse en plus remplir "b" et "c" et ajouter à ma table1 "a" (venant de "e"), "b" et "c" et à table2 "e", "f" et "g".

    Est ce plus clair?

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Excuse-moi, je m'attendais à quelque chose de plus explicite.

    Exemple des tables et des champs qui ont des noms qui veulent dire ce qu'il sont.

    Un formulaire où l'on voit les contrôles et comprendre directement ce que tu voudrais faire.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    Ok, cette fois je pense que mon exemple sera facilement compréhensible.
    Le classique : commandes / Clients
    1 client peut avoir plusieurs commandes
    1 commande ne peut avoir qu'un seul client.
    Dans mon formulaire, je rentre : le nom de la commande, le prix, le nom du client et il retrouve, s'il existe, le prénom et l'adresse.
    S'il n'existe pas, je voudrais pouvoir entrer ces trois derniers champs (nom du client, prénom du client et adresse du client) à la main et qu'il les sauvegarde.

    Comment faire ma requete en conséquence?
    Merci
    Damien
    Images attachées Images attachées   

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Ah voila une bonne question et la réponse ici :
    http://access.developpez.com/faq/?page=zdl#AbsDsListe

  7. #7
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    Merci beaucoup Claude !
    Je pensais qu'il y avait une possibilité pour le faire directement mais cette méthode me convient malgré tout.
    Je rappelle aux futurs lecteurs de ce post qui auront le meme probleme que pour activer le notinlist d'une liste déroulante qu'il faut mettre la propriété "limiter à liste" à true.
    Si je ne veux pas utiliser le controle liste modifiable déroulante mais une textbox, je suppose qu'il faut utiliser les evenements avantMaj ou apresMaj et vérifier si l'entrée existe et sinon l'ajouter.
    Merci pour ton aide !
    Je mets le post en résolu.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/11/2010, 07h17
  2. Réponses: 2
    Dernier message: 13/10/2008, 17h04
  3. Réponses: 6
    Dernier message: 06/02/2008, 15h05
  4. Réponses: 2
    Dernier message: 30/11/2007, 18h54
  5. INSERER DU TEXTE AVEC DES CHAMPS DANS UNE REQUETE SUR sql Srv 2000
    Par sauceaupistou dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/03/2007, 11h02

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