Lien entre 2 tables

cs_Fanch29 Messages postés 17 Date d'inscription vendredi 10 décembre 2004 Statut Membre Dernière intervention 18 janvier 2005 - 13 déc. 2004 à 11:24
cs_Fanch29 Messages postés 17 Date d'inscription vendredi 10 décembre 2004 Statut Membre Dernière intervention 18 janvier 2005 - 13 déc. 2004 à 14:33
J'ai un probleme
J'ai 2 tables sous access
1 avec l'employé (empno (numero),ename(lenom),sal, dateembauche,le jobet l'emploi)
1 autre avec l'immatriculation(nomsal, prenomsal, adressesal, villesal, datenaiss, numte)
et un lien entre le nom de l'employé et le nom de la personne en gros
ename=nomsal
je fait une requete sous VB voici le code

Sql = "SELECT nomsal, prenomsal, adressesal, villesal, datenaiss, numtel From identite, emp where ename=nomsal"
rsidentite.Open Sql, cnx

Au départ tout ce qu'il y a dans la table employé s'affiche dans un datagrid. Dès ke je click sur une personne je peux soit la modifier la supprimer ou créer un nouveau. Là n'est pas le PB.
Je voudrais quand je click sur la même personne que son immatriculation s'affiche dans d'autre text box .J'ai réussi a faire cela en faisant

textnomsal = rsidentite.Fields(0).Value
textpresal = rsidentite.Fields(1).Value
textadrsal = rsidentite.Fields(2).Value
textvillesal = rsidentite.Fields(3).Value
textdatenaiss = rsidentite.Fields(4).Value
texttel = rsidentite.Fields(5).Value

Il m'affiche la première personne qu'il y a dans le datagrid et quand je click sur une autre personne elle reste sur la personne précédente. De plus c'est la première personne du datagrid qui s'affiche
Qqun pourrait-il m'aider SVP...

3 réponses

cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 1
13 déc. 2004 à 12:07
lu
Comment tu met les enr dans ta datagrid?
Fabrice
0
KIBEYA Messages postés 10 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 6 janvier 2005
13 déc. 2004 à 13:30
A voir comment tu exprimes ta requête SQL, j'ai comme impression que tu n'as pas les deux tables liées. Si non je ne vois que "employé" d'où sont tirées les informations affichées dans ta datagrid :( Sql = "SELECT nomsal, prenomsal, adressesal, villesal, datenaiss, numtel From identite, emp where ename=nomsal") dont source exprimée par From. Mais la comparaison doit s'effectuée à travers ce lien absent de cette requête et qu'il fallait avoir par l'expression "inner join".

1. Je te conseil de créer une requête basée sur ces deux tables, une fois terminer (en mode création) vas dans la barre de menu Access, choisis Requête. Dans le menu déroulant optes pour Spécifique SQL puis SQL direct. Et là tu aura une requête SQL bien taillée à laquelle tu peux t'inspirer.

2. Tu peux aussi t'inspirer de celle-ci :
SQL = "SELECT employe.eName, Immatriculation.Nomsal, Immatriculation.prenomsal
FROM employe INNER JOIN Immatriculation ON employe.eName = Immatriculation.Nomsal"

kibeya
0
cs_Fanch29 Messages postés 17 Date d'inscription vendredi 10 décembre 2004 Statut Membre Dernière intervention 18 janvier 2005
13 déc. 2004 à 14:33
pour Kibeya

Cependant le lien est fait puisque j'arrive a afficher l'immatriculation de la première personne en cliquant sur le nom dans le datagrid qui lui est de la table employé
Mais je vais essayer ce que tu m'as dit et on verra après

Pour trabice

'Alimentation du Data Grid

Sql = "SELECT empno as Num_mat, ename as Nom, sal as Salaire, hiredate as Date_Emb, job, Deptno FROM emp ORDER BY empno asc"
rsEmployés.Open Sql, cnx, adOpenDynamic, adLockOptimistic
Set Me.dgEmployés.DataSource = rsEmployés
Me.dgEmployés.Columns("deptno").Width = 0
0
Rejoignez-nous