DataCombo et Requete sur jointure

Badgamme Messages postés 17 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 3 novembre 2005 - 4 août 2003 à 17:18
Badgamme Messages postés 17 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 3 novembre 2005 - 5 août 2003 à 14:01
Bonjour,
Un truc visiblement tout simple auquel je n'ai pas trouvé de réponse dans le forum. Exemple (pour simplifier) :
J'ai une table "personne" contenant Nom,Prenom,Genre (codé 1,2,3)
une table "Genre" avec Num,Libellé (1=Monsieur,2=Mme,etc ..)

J'ai un Formulaire avec des TextBox pour Nom et Prenom et une DataCombo pour le genre.
Pour les textbox, tout fonctionne, par contre, je voudrai que la combo m'affiche le libellé du genre de la personne et me permette de le modifier !
c'est la que ça coince avec le message "Field not updatable,Bound Property Name:BoundText,FieldName : Genre"
J'ai un DataEnvironement avec une commande "ListGenre" qui fait un Select * FROM Genre et je positionne, dans les propriétés de ma DataCombo
- RowSource avec le nom de mon DataEnvironement,
- RowMember avec ListGenre
- ListField avec Genre.Libellé
- DataFields avec Personne.Genre
- Boundcolumn avec genre.Num

Qu'oublie-je ??

Merci

4 réponses

gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
4 août 2003 à 18:08
Salut,

Une jointure ne permet qu'une vue et pas de modification. Tu pointes sur 2 tables, comment veux-tu que le système sache qui tu veux mettre à jour.
La solution que j'utilise est, que via un click droit je fais apparaître un form que je gère moi-même pour mettre à jour les tables et rafraichir le form initial.
0
Badgamme Messages postés 17 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 3 novembre 2005
5 août 2003 à 10:41
Bien sûr qu'une vue ne permet pas de modification (et encore) mais là, c'est différent, dans le cas présent, si je modifie le genre : "Mademoiselle" en "Madame" à l'écran, tout ce que je souhaite, c'est que le code correspondant à ce libellé soit mis à jour dans la table "Personne" genre UPDATE Personne Set Genre=2 WHERE ID=.... !! Il sait quand même bien faire ça le DataCombo ???
0
gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
5 août 2003 à 11:18
On ne doit pas être sur la même longueur d'onde.
Pour crééer ton recordset ListGenre dans ton DataEnvironment, utilises-tu une table ou une syntaxe SQL avec une jointure ?
0
Badgamme Messages postés 17 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 3 novembre 2005
5 août 2003 à 14:01
Le recordset ListGenre est un SELECT * FROM Genre. Il me permet d'alimenter les propriétés RowMember et RowSource de mon control DataCombo.
Par contre, dans le code, j'ai un autre recordset "SELECT * FROM Personne, Genre Where Genre=Num" qui me permet de récupérer le libellé du genre de la personne (Monsieur,Madame,...)
J'ai réussi à faire fonctionner mon exemple en valorisant, pour mon control DataCombo :
- BoundColumn avec le Num de la table Genre
- DataField avec le Genre de la table Personne
- ListFields avec le Libelle de la table Genre
- RowMember avec le ListGenre de mon DataEnvir

ça marche.
Bon, maintenant, j'ai d'autre problème avec mon vrai projet (vu que ça, c'était la mise en bouche !!)
0
Rejoignez-nous