3 pièce(s) jointe(s)
Problème d’affichage après réinitialisation par code d’un champ numeroAuto
Bonjour,
J’ai écrit une sub pour réinitialiser un champ numeroAuto.
Ça marche, mais après exécution, quand je clique sur la table dans le volet de navigation, l’affichage de la table présente une anomalie : le champ numeroAuto est en deuxième position au lieu d’être en première.
Curieusement dans l’affichage en mode conception de la table, le champ numeroAuto est bien en première position et encore plus curieux si dans le volet de navigation je fais un copier/coller de la table, la table copiée ne présente plus l’anomalie : le champ numeroAuto est bien affiché en première position !
Voilà le bout de code ultra-simplifié qui pose problème (avec plusieurs variantes en commentaire pour recréer le champ numeroAuto et l’index primaire en vue d’essayer de fixer le bug. Toutes créent le champ et l’index) mais le problème d’affichage subsiste
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Sub MaSub3()
CurrentDb.TableDefs.Refresh
strSql = "ALTER TABLE tObjets ADD COLUMN Objets_Id AUTOINCREMENT NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY ;"
' Autres variantes de code testées (création du champ numeroAuto, puis de l'index mais le problème 'affichahe est identique
'strSql = "ALTER TABLE tobjets ADD COLUMN Objets_Id AUTOINCREMENT NOT NULL;"
' DoCmd.RunSQL (strSql)
' egalement 2 variantes pour creer l'indexprimaire l'index est créé mais le problème d'affichage subsiste
'strSql = "CREATE INDEX PrimaryKey ON tObjets (Objets_ID) WITH PRIMARY;"
'strSql = "ALTER TABLE tObjets ADD PRIMARY KEY (Objets_ID);"
DoCmd.RunSQL (strSql)
CurrentDb.TableDefs.Refresh
' On remet le champ numeroAuto en première position
CurrentDb.TableDefs("tobjets").Fields("Objets_Id").OrdinalPosition = 0
' egalement testé a tout hasard, mais le problème est identique
'i = CurrentDb.TableDefs("tobjets").Fields.Count
'CurrentDb.TableDefs("tobjets").Fields(i - 1).OrdinalPosition = 0
CurrentDb.TableDefs.Refresh
End sub |
Une idée sur le pourquoi ?
Pièce jointe 533279
L'affichage apres execution du code
Pièce jointe 533282
La structure de la table à réinitialiser
Pièce jointe 533286
PS : si utile je peux poster la base demo de l'anomalie