Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/11/2010, 15h31   #1
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 45
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 45
Points : 10
Points : 10
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
Diablange est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 15h39   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 238
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

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

Informations forums :
Inscription : novembre 2006
Messages : 5 238
Points : 11 025
Points : 11 025
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.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 16h27   #3
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 45
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 45
Points : 10
Points : 10
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?
Diablange est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 16h35   #4
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 238
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

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

Informations forums :
Inscription : novembre 2006
Messages : 5 238
Points : 11 025
Points : 11 025
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.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 17h18   #5
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 45
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 45
Points : 10
Points : 10
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
Type de fichier : jpg requete.jpg (79,7 Ko, 2 affichages)
Type de fichier : jpg formulaire.jpg (35,9 Ko, 1 affichages)
Diablange est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 17h23   #6
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 238
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

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

Informations forums :
Inscription : novembre 2006
Messages : 5 238
Points : 11 025
Points : 11 025
Ah voila une bonne question et la réponse ici :
http://access.developpez.com/faq/?page=zdl#AbsDsListe
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 18h09   #7
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 45
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 45
Points : 10
Points : 10
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.
Diablange est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h08.


 
 
 
 
Partenaires

Hébergement Web