Mise à jour VB6 et Access 2007 avec requête SQL
mohalesage
Messages postés
147
Date d'inscription
Statut
Membre
Dernière intervention
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour l'Ami,
J'ai besoin de votre aide. Je me suis trouvé coincé au bout du couloir. Je n'arrive pas à dépasser le niveau de la mise à jour, surtout la commande Modifier
Pour information
Je travaille avec VB6 et Acces 2007, utilisant la requête SQL
sur le Module, j'ai écris
Public DB as New ADOBD.Connection
Public RS as New ADODB.RecordSet
Public Rss as New ADODB.RecordSet
Public SQLs as String
Sur acces il y a Trois Tables
Une TablePrincipale ( stock les données saisies à partir de la feuille de saisie )
Deux Tables Secondaires indexéeqs ( TableNom, TableMatiere )
TableNom est indexée par Les Nom
TableMatiere est indexée par les Matiere
Mon problème se situe au niveau de la commande Modifier.
Sur la feuille d'affichage pour la consultation en vue de la modification, les données sélectionnées sur la feuille de Recherche s'affichent
lorsque je change le contenu d'un objet text, le changement s'effectue :
Normalement sur la TablePrincipale
Normalement sur les deux Tables secondaires tant que Nom ( index sur la TableNom ) et Matiere ( Index sur la TableMatiere ) n'ont pas été modifié sur la feuille de consultation en vue de la modification
Mon objectif est : lorsque je change sur la feuille de consultation en vue de modification, par exemple Nom, les données saisies auparavant devant le nom x disparaissent de la ligne de ce nom, mais apparaissent sur la ligne du nouveau Nom saisi sur l'objet Text de la feuille consultation
Bien sur il y a toujours une condition pour chacune de modification
Une partie de mon objectif se réalise, à savoir la disparition des données de la ligne de l'Index modifié
mais l'apparition des ces données sur la ligne du nouveau Nom ne se réalise pas
pour plus d'éclaircissement
l'instruction équivalente à case is <> se réalise
par contre celle concernant Case = ne se réalise pas
Merci d'avance pour votre aide
J'ai besoin de votre aide. Je me suis trouvé coincé au bout du couloir. Je n'arrive pas à dépasser le niveau de la mise à jour, surtout la commande Modifier
Pour information
Je travaille avec VB6 et Acces 2007, utilisant la requête SQL
sur le Module, j'ai écris
Public DB as New ADOBD.Connection
Public RS as New ADODB.RecordSet
Public Rss as New ADODB.RecordSet
Public SQLs as String
Sur acces il y a Trois Tables
Une TablePrincipale ( stock les données saisies à partir de la feuille de saisie )
Deux Tables Secondaires indexéeqs ( TableNom, TableMatiere )
TableNom est indexée par Les Nom
TableMatiere est indexée par les Matiere
Mon problème se situe au niveau de la commande Modifier.
Sur la feuille d'affichage pour la consultation en vue de la modification, les données sélectionnées sur la feuille de Recherche s'affichent
lorsque je change le contenu d'un objet text, le changement s'effectue :
Normalement sur la TablePrincipale
Normalement sur les deux Tables secondaires tant que Nom ( index sur la TableNom ) et Matiere ( Index sur la TableMatiere ) n'ont pas été modifié sur la feuille de consultation en vue de la modification
Mon objectif est : lorsque je change sur la feuille de consultation en vue de modification, par exemple Nom, les données saisies auparavant devant le nom x disparaissent de la ligne de ce nom, mais apparaissent sur la ligne du nouveau Nom saisi sur l'objet Text de la feuille consultation
Bien sur il y a toujours une condition pour chacune de modification
Une partie de mon objectif se réalise, à savoir la disparition des données de la ligne de l'Index modifié
mais l'apparition des ces données sur la ligne du nouveau Nom ne se réalise pas
pour plus d'éclaircissement
Sub cmdModifier_Click ()
if NOrdre = TNOrdre then
Goto Ne_Fais_Rien :
end if
SQLs="Select * TablePrincipale where NOrdre = " & TNOrdre &""
if Rss.State=adStateOpen Then Rss.Close
Rss.Open SQLs, DB, adOpenKeySet, adLockPessimistic
if Rss.EOF then
Goto Oks:
else
msgbox" Ce Numero Existe "
exit sub
end if
Oks:
'-------
Ne_Fais_Rien:
ActuMsg=msgbox("Voulez vous modofier ?",VBquestion+vbYesNo,)
if AcuMsg=vbYes then
'-----l'Actualisation de la TablePrincipale
RS![Nom]=TNom
RS![Matiere]=TMatiere
RS![Note]=TNote
RS.Update
'--------------------------------------------
Dim N
N=CStr(TNom)
SQLs="Select * from TableNom where Nom = '" & CStr(TNom) &"'"
if Rss.State=adStateOpen Then Rss.Close
Rss.Open SQLs, DB, adOpenKeySet, adLockPessimistic
'-----l'Actualisation de la TableNom
Selct Case TNom
Case is <> RS![Nom]
RS![NOrdre]=0
RS![Matiere]=""
RS![Note]=0
Case Else
RS![NOrdre]=TNOrdre
RS![Matiere]=TMatiere
RS![Note]=TNote
end Select
RS.Update
'-------------------------------------------------
'-----l'Actualisation de la TableMatiere
Dim M
M=CStr(TMatiere)
SQLs="Select * from TableMatiere where Matiere = '" & CStr(TMatiere) &"'"
if Rss.State=adStateOpen Then Rss.Close
Rss.Open SQLs, DB, adOpenKeySet, adLockPessimistic
Selct Case TMatiere
Case is <> RS![Matiere]
RS![NOrdre]
RS![Nom]=""
RS![Note]=0
Case Else
rs![NOrdre]
RS![Nom]=TNom
RS![Note]=TNote
end Select
RS.Update
end if
FRecherche.Show
Load me
end sub
l'instruction équivalente à case is <> se réalise
par contre celle concernant Case = ne se réalise pas
Merci d'avance pour votre aide
A voir également:
- Mise à jour VB6 et Access 2007 avec requête SQL
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Save as pdf office 2007 - Télécharger - Bureautique
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Mise a jour kindle - Guide
28 réponses
Bonjour,
contre celle concernant Case = Cette instruction n'existe pas dans votre code, vous avez ecrit Case Else qui devrait faire ce que vous attendez.
Un simple
Il manque Rs.Edit pour chaque Rs.Udate. Si vous avez plusieurs fois le meme nom, comment vous faiies ????
contre celle concernant Case = Cette instruction n'existe pas dans votre code, vous avez ecrit Case Else qui devrait faire ce que vous attendez.
Un simple
If TMatiere <> RS![Matiere] Then ....... Else ....... End ifaurait suffi.
Il manque Rs.Edit pour chaque Rs.Udate. Si vous avez plusieurs fois le meme nom, comment vous faiies ????
Bonjour l'Ami,
Merci pour votre attention.
Même avec la condition If .... then ..... Else ..... end if, le resultat était toujours le même. Car c'est cette condition que j'ai essayé en premier lieu.
Concernant la RS.EditMode ( Je crois ) je ne sais pas comment l'utiliser. Si vous m'éclairiez sur ce point je vous en serai reconnaissant.
Concernant le même nom, je crois ce n'est pas un problème. Car Sur la TableNom c'est le cumul des note qui gère
Merci encore pour votre aide
Merci pour votre attention.
Même avec la condition If .... then ..... Else ..... end if, le resultat était toujours le même. Car c'est cette condition que j'ai essayé en premier lieu.
Concernant la RS.EditMode ( Je crois ) je ne sais pas comment l'utiliser. Si vous m'éclairiez sur ce point je vous en serai reconnaissant.
Concernant le même nom, je crois ce n'est pas un problème. Car Sur la TableNom c'est le cumul des note qui gère
Merci encore pour votre aide
Re,
Concernant la RS.EditMode ( Je crois ) ----> Autant pour moi, si requete sql, pas de passage en mode edition pour modifier les champs d'un enregistrement
un exemple qui marche chez moi avec une base simple
Concernant la RS.EditMode ( Je crois ) ----> Autant pour moi, si requete sql, pas de passage en mode edition pour modifier les champs d'un enregistrement
un exemple qui marche chez moi avec une base simple
Private Sub CommandButton1_Click()
Texte = Me.Controls("Textbox" & 4)
Sql = "select * from BdD_Bon where [Group]='" & Texte & "'"
rs.Open Sql, conn, 3, 3
If rs.EOF And rs.BOF Then
MsgBox "Existe pas!!!"
Else
If Texte <> rs![Group] Then
rs![numero] = 0
rs![Group] = ""
rs![Matricule] = 0
Else
rs![numero] = Texte
rs![Group] = "AZER"
rs![Matricule] = 99999
End If
rs.Update
End If
End Sub
Bonjour l'Ami,
Je vous donnerai plus d'explications pour vous permettre de bien cerner mon problème
Voilà :
il y'a tout d'abord une Table où sont enregistrées les données ( TablePrincipale )
elle contient 4 colonnes
0 = Nordre
1=Nom
2=Matiere
3=Note
avec comme clé primaire le NOrdre
ensuite
il y'a la table secondaire 1 ( TableNom) .Elle contient aussi 4 Colonnes
0=Nom
1=NOrdre
2=Matiere
3=Note
Déjà dans cette table la colonne 1 [Nom] est remplie par plusieurs noms différents à partir d'une fenêtre de paramétrage ( Nom est considéré comme Index ), avec comme clé primaire le Nom
ensuite
il y'a la Table secondaire 2 ( TableMatière ). Elle contient elle aussi 4 Colonnes
0=Matiere
1=NOrdre
2=Nom
3=Note
Aussi la colonne 1 [Matiere] est déjà remplie par les différentes matières à partir de la fenêtre du parametrage ( Matiere est considérée ici comme Index), avec comme clé primaire la Matiere
au moment de la saisie générale, les codes saisis sont comme suit
la Feuille de saisie
Ces codes sont ici pour la saisie générale
seulement en cas d'erreur de saisie, détectée après, il y' a une fenêtre de recherche qui renvoie à la fenêtre de mise à jour.
Supposons que la saisie générale a donné ce qui suit
sur la TablePrincipale
NOrdre Nom Matiere Note
1 XXXX Math 14,45
Sur la TableNom ( Déjà la colonne 0 est pleine par les Noms )
Nom NOrdre Matiere Note
XXXX 1 Math 14,45
YYYY
ZZZZ
WWW
Sur la TableMatiere ( Déjà la Colonne 0 est pleine par les matières )
Matiere NOrdre Nom Note
Math 1 XXX 14,45
Phisique
Chimie
Science
Ceci étant exposé
Supposons que l'erreur détectée est comme suite
au lieu de saisir YYYY on a saisi par erreur XXX ,
et
au lieu de saisir Chimie on a saisi Math
on veut corriger ces deux erreurs
les codes écris sur la feuille de modification est comme suit
sur la TablePrincipale avec les codes dessus la correction est réussie
mais sur la TableNom et la TableMatiere , la suppression des données saisies qui sont supprimées mais la correction est ignorée
c'est à dire
sur la TableNom NOrdre Math 14,45 ( Saisis sur la ligne de XXX ) sont supprimé, mais sur la ligne de YYY rien n'est enregistrés
la même chose se passe sur la ligne matire dans la ( TableMatiere )
les données saisie par erreur sur la ligne de Math sont supprimées, mais rien n'est enregistré sur la ligne de Chimie
Voilà mon problème
J'espère être clair pour vous permettre de bien situer le problème et me donner une solution viable.
Merci pour votre patience
A plus l'Ami
Je vous donnerai plus d'explications pour vous permettre de bien cerner mon problème
Voilà :
il y'a tout d'abord une Table où sont enregistrées les données ( TablePrincipale )
elle contient 4 colonnes
0 = Nordre
1=Nom
2=Matiere
3=Note
avec comme clé primaire le NOrdre
ensuite
il y'a la table secondaire 1 ( TableNom) .Elle contient aussi 4 Colonnes
0=Nom
1=NOrdre
2=Matiere
3=Note
Déjà dans cette table la colonne 1 [Nom] est remplie par plusieurs noms différents à partir d'une fenêtre de paramétrage ( Nom est considéré comme Index ), avec comme clé primaire le Nom
ensuite
il y'a la Table secondaire 2 ( TableMatière ). Elle contient elle aussi 4 Colonnes
0=Matiere
1=NOrdre
2=Nom
3=Note
Aussi la colonne 1 [Matiere] est déjà remplie par les différentes matières à partir de la fenêtre du parametrage ( Matiere est considérée ici comme Index), avec comme clé primaire la Matiere
au moment de la saisie générale, les codes saisis sont comme suit
la Feuille de saisie
SQLs="Select * from TablePrincipale where NOrdre=" & TNOrdre &""
if RS.State=adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeySet, adLockPessimistic
if RS.EOF then
Goto Oks:
else
Msgbox"Désolé, ce Numéro existe déjà"
exit sub
end if
Oks:
RS.addNew
RS![NOrdre]=TNOrdre
RS![Nom]=TNom
RS![Matiere]=TMatiere
RS![Note]=TNote
RS.Update
'-------------------------------
Dim N
N=CStr(TNom)
SQLs="Select * from TableNom where Nom=' " & TNom &" ' "
if RS.State=adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeySet, adLockPessimistic
if TNom = RS![Nom] Then
RS![NOrdre]=TNOrdre
RS![Matiere]=TMatiere
RS![Note]=TNote
RS.Update
End if
'---------------------------------
Dim M
M=CStr(TMatiere)
SQLs="Select * from TableMatiere where Matiere=' " & TMatiere &" ' "
if RS.State=adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeySet, adLockPessimistic
if TMatiere = RS![Matiere] Then
RS![NOrdre]=TNOrdre
RS![Matiere]=TMatiere
RS![Note]=TNote
RS.Update
End if
Ces codes sont ici pour la saisie générale
seulement en cas d'erreur de saisie, détectée après, il y' a une fenêtre de recherche qui renvoie à la fenêtre de mise à jour.
Supposons que la saisie générale a donné ce qui suit
sur la TablePrincipale
NOrdre Nom Matiere Note
1 XXXX Math 14,45
Sur la TableNom ( Déjà la colonne 0 est pleine par les Noms )
Nom NOrdre Matiere Note
XXXX 1 Math 14,45
YYYY
ZZZZ
WWW
Sur la TableMatiere ( Déjà la Colonne 0 est pleine par les matières )
Matiere NOrdre Nom Note
Math 1 XXX 14,45
Phisique
Chimie
Science
Ceci étant exposé
Supposons que l'erreur détectée est comme suite
au lieu de saisir YYYY on a saisi par erreur XXX ,
et
au lieu de saisir Chimie on a saisi Math
on veut corriger ces deux erreurs
les codes écris sur la feuille de modification est comme suit
Sub CmdModifier_Click ()
If NOrdre = TNOrdre then
Goto Ne_Fais_Rien :
end if
SQLs="Select * TablePrincipale where NOrdre = " & TNOrdre &""
if Rss.State=adStateOpen Then Rss.Close
Rss.Open SQLs, DB, adOpenKeySet, adLockPessimistic
if Rss.EOF then
Goto Oks:
else
msgbox" Ce Numero Existe "
exit sub
end if
Oks:
'-------
Ne_Fais_Rien:
ActuMsg=msgbox("Voulez vous modofier ?",VBquestion+vbYesNo,)
if AcuMsg=vbYes then
'-----l'Actualisation de la TablePrincipale
RS![Nom]=TNom
RS![Matiere]=TMatiere
RS![Note]=TNote
RS.Update
'--------------------------------------------
Dim N
N=CStr(TNom)
SQLs="Select * from TableNom where Nom = '" & CStr(TNom) &"'"
if Rss.State=adStateOpen Then Rss.Close
Rss.Open SQLs, DB, adOpenKeySet, adLockPessimistic
'-----l'Actualisation de la TableNom
if TNom <> RS![Nom] then
RS![NOrdre]=0
RS![Matiere]=""
RS![Note]=0
Else
RS![NOrdre]=TNOrdre
RS![Matiere]=TMatiere
RS![Note]=TNote
RS.Update
end If
'-------------------------------------------------
'-----l'Actualisation de la TableMatiere
Dim M
M=CStr(TMatiere)
SQLs="Select * from TableMatiere where Matiere = '" & CStr(TMatiere) &"'"
if Rss.State=adStateOpen Then Rss.Close
Rss.Open SQLs, DB, adOpenKeySet, adLockPessimistic
if TMatiere <> RS![Matiere] Then
RS![NOrdre]
RS![Nom]=""
RS![Note]=0
Else
Rs![NOrdre]
RS![Nom]=TNom
RS![Note]=TNote
RS.Update
end if
FRecherche.Show
Load me
end if
end sub
sur la TablePrincipale avec les codes dessus la correction est réussie
mais sur la TableNom et la TableMatiere , la suppression des données saisies qui sont supprimées mais la correction est ignorée
c'est à dire
sur la TableNom NOrdre Math 14,45 ( Saisis sur la ligne de XXX ) sont supprimé, mais sur la ligne de YYY rien n'est enregistrés
la même chose se passe sur la ligne matire dans la ( TableMatiere )
les données saisie par erreur sur la ligne de Math sont supprimées, mais rien n'est enregistré sur la ligne de Chimie
Voilà mon problème
J'espère être clair pour vous permettre de bien situer le problème et me donner une solution viable.
Merci pour votre patience
A plus l'Ami
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
J'ai compris votre probleme, table Matiere et Nom il n'y a pas de mise a jour sur correction(s).
Parcontre, choses qui me chagrinent un peu:
vous faites des requetes en partant de variables et vous testez si dans le recordset c'est different de la variable que vous avez utilisee pour creer ce recordset
Pouvez-vous mettre a dispo votre projet complet en changent le noms s'il y en a
J'ai compris votre probleme, table Matiere et Nom il n'y a pas de mise a jour sur correction(s).
Parcontre, choses qui me chagrinent un peu:
vous faites des requetes en partant de variables et vous testez si dans le recordset c'est different de la variable que vous avez utilisee pour creer ce recordset
SQLs="Select * from TableNom where Nom = '" & CStr(TNom) &"'"
et
if TNom <> RS![Nom] then
SQLs="Select * from TableMatiere where Matiere = '" & CStr(TMatiere) &"'"
et
if TMatiere <> RS![Matiere] Then
Pouvez-vous mettre a dispo votre projet complet en changent le noms s'il y en a
Bonjour l'Ami,
Je n'est pas compris votre phrase le .vbw ne me sert a rien.
Si je vous n'aviez pas reçu mon dossier de le renvoie une autre fois
A plus
Je n'est pas compris votre phrase le .vbw ne me sert a rien.
Si je vous n'aviez pas reçu mon dossier de le renvoie une autre fois
A plus
Re Bonjour l'Ami
Veuilez trouver mon dossier sur ce lien
https://www.cjoint.com/?0ExpaG8k7cW
A binetôt.
Avisez moi si jamais le même problème persistait
Veuilez trouver mon dossier sur ce lien
https://www.cjoint.com/?0ExpaG8k7cW
A binetôt.
Avisez moi si jamais le même problème persistait
Re
Veuillez m'excuser . je vous l'ai dis, nul en informatique
https://www.cjoint.com/?0ExqcvWQ3zF
je l'ai compressé. J'espère que cette fois est la bonne
a plus
Veuillez m'excuser . je vous l'ai dis, nul en informatique
https://www.cjoint.com/?0ExqcvWQ3zF
je l'ai compressé. J'espère que cette fois est la bonne
a plus
Re,
Structure de base de donnees un peu curieuse:
Table TableNoms: que viennent faire la Matiere et la note dans cette table ??????
Table TableMatieres: que viennent faire le Nom et la note dans cette table ??????
et comme je l'ai deja ecrit, comment faites vous pour les personnes de meme nom
Il faudrait commencer par terminer la saisie des noms avant de penser a voir comment rectifier les erreurs de saisie des notes et matieres
De plus, la saisie des notes par matieres est un peu confuse. Y a plus simple.
A+
Structure de base de donnees un peu curieuse:
Table TableNoms: que viennent faire la Matiere et la note dans cette table ??????
Table TableMatieres: que viennent faire le Nom et la note dans cette table ??????
et comme je l'ai deja ecrit, comment faites vous pour les personnes de meme nom
Il faudrait commencer par terminer la saisie des noms avant de penser a voir comment rectifier les erreurs de saisie des notes et matieres
De plus, la saisie des notes par matieres est un peu confuse. Y a plus simple.
A+
Re,
Concernant la saisie des noms. J'ai prévu d'attribuer un code pour chaque
nom.
concernant la TableNoms , la Matiere et la Note y sont pour me permettre
d'appeler la note pour chaque nom ou la matière pour chauqe nom( si je ne me trompe pas )
ainsi pour la TableMatieres.
Que pensez vous ?
A plus l'Ami
Concernant la saisie des noms. J'ai prévu d'attribuer un code pour chaque
nom.
concernant la TableNoms , la Matiere et la Note y sont pour me permettre
d'appeler la note pour chaque nom ou la matière pour chauqe nom( si je ne me trompe pas )
ainsi pour la TableMatieres.
Que pensez vous ?
A plus l'Ami
Bonjour,
J'ai prévu d'attribuer un code pour chaque
nom. Non, vous faites un test si meme nom
Les tables Nom et Matieres ne doivent pas contenir d'autres informations que celles qui les concernent.
Il n'y a qu'une seule a mettre a jour pour la saisie ou rectification de notes: TableNotes
J'ai prévu d'attribuer un code pour chaque
nom. Non, vous faites un test si meme nom
MsgBox "Ce Nom est déjà saisi"et pas d'enregistrement
Les tables Nom et Matieres ne doivent pas contenir d'autres informations que celles qui les concernent.
Il n'y a qu'une seule a mettre a jour pour la saisie ou rectification de notes: TableNotes
Bonjour,
Après votre remarque ("Structure de base de donnees un peu curieuse: ")
J'ai revu la structure de ma BD . Je n'ai pas encore terminé, une faite, je mettrai
à votre disposition mon petit projet
Merci pour votre attention
Après votre remarque ("Structure de base de donnees un peu curieuse: ")
J'ai revu la structure de ma BD . Je n'ai pas encore terminé, une faite, je mettrai
à votre disposition mon petit projet
Merci pour votre attention
Re,
Je mets à votre disposition mon petit projet, revu suite à vos conseils.
j'aimerai bien que vous y jetiez un coup d'oeil et me dire votre avis.
l'Etape prochaine, je tenterai de calculer les cumuls
1 : des notes par Etudiant
2 : des notes par Etudiant et par matières
A plus et Merci pour tout
https://www.cjoint.com/?0EyqDrAUsic
Je mets à votre disposition mon petit projet, revu suite à vos conseils.
j'aimerai bien que vous y jetiez un coup d'oeil et me dire votre avis.
l'Etape prochaine, je tenterai de calculer les cumuls
1 : des notes par Etudiant
2 : des notes par Etudiant et par matières
A plus et Merci pour tout
https://www.cjoint.com/?0EyqDrAUsic
Re,
projet et base modifies pour noms identiques et pas meme prenom, ai simplifie correction saisie, ai ajoute des tests sur mise a jours Eleves, Matiere, Saisie Notes et correction Saisie Note
https://www.cjoint.com/?DEyqHOzppqE
A+
projet et base modifies pour noms identiques et pas meme prenom, ai simplifie correction saisie, ai ajoute des tests sur mise a jours Eleves, Matiere, Saisie Notes et correction Saisie Note
https://www.cjoint.com/?DEyqHOzppqE
A+
Bonjour,
Dans ce que je vous ai mis a dispo, il y a un petit probleme, en faisant le menage du repertoire j'ai supprime la form EditionSaisie que j'ai modifiee avec Nom_Prenom.
Dans votre nouveau projet, si le CNE est unique, il doit etre la cle primaire de la table et vous n'avez pas besoin du NOrdre. Par contre il faut qu'a chaque fois vous ayez ce numero avec le nom sinon comment reconnaitre les personnes de meme nom
Dans ce que je vous ai mis a dispo, il y a un petit probleme, en faisant le menage du repertoire j'ai supprime la form EditionSaisie que j'ai modifiee avec Nom_Prenom.
Dans votre nouveau projet, si le CNE est unique, il doit etre la cle primaire de la table et vous n'avez pas besoin du NOrdre. Par contre il faut qu'a chaque fois vous ayez ce numero avec le nom sinon comment reconnaitre les personnes de meme nom