pb de trous dans numerotation d'enregistrements

Le
Hb
Bonjour,
J'utilise la fonction dmax +1 pour numéroter des commandes dans un
formulaire principal en allant chercher le no de ma numérotation
automatique, clé primaire de la table concernée.
Lorsque je supprime un enregistrement en amont, avant le dernier (ex : le 10
alors que j'en ai 12)
j'ai, du coup, un "trou" (8,9,11,12)
Comment éviter cela, sachant que je dois laisser la possibilité de supprimer
un enregistrement en amont?
Merci pour les conseils.

HB
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Raymond [mvp]
Le #6145651
Bonjour.

pour trouver le premier trou dans une clé primaire tu peux utiliser une
requête comme ceci:
SELECT TOP 1 DCount("*","Table1","numero <" & [numero])+1 AS Compteur
FROM Table1
WHERE (((DCount("*","Table1","numero <" & [numero])+1)<>[numero]))
ORDER BY Table1.Numero;

à vérifier.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Hb" 44ec081d$0$873$
| Bonjour,
| J'utilise la fonction dmax +1 pour numéroter des commandes dans un
| formulaire principal en allant chercher le no de ma numérotation
| automatique, clé primaire de la table concernée.
| Lorsque je supprime un enregistrement en amont, avant le dernier (ex : le
10
| alors que j'en ai 12)
| j'ai, du coup, un "trou" (8,9,11,12)
| Comment éviter cela, sachant que je dois laisser la possibilité de
supprimer
| un enregistrement en amont?
| Merci pour les conseils.
|
| HB
|
|
Hb
Le #6145591
Merci pour l'aide, je vais essayer,
Mais en fait, je cherche à garder une numérotation continue, indépendamment
des effacements d'enregistrements,
peut être est ce un cas classique ?

"Raymond [mvp]" de news:
Bonjour.

pour trouver le premier trou dans une clé primaire tu peux utiliser une
requête comme ceci:
SELECT TOP 1 DCount("*","Table1","numero <" & [numero])+1 AS Compteur
FROM Table1
WHERE (((DCount("*","Table1","numero <" & [numero])+1)<>[numero]))
ORDER BY Table1.Numero;

à vérifier.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Hb" 44ec081d$0$873$
| Bonjour,
| J'utilise la fonction dmax +1 pour numéroter des commandes dans un
| formulaire principal en allant chercher le no de ma numérotation
| automatique, clé primaire de la table concernée.
| Lorsque je supprime un enregistrement en amont, avant le dernier (ex :
le

10
| alors que j'en ai 12)
| j'ai, du coup, un "trou" (8,9,11,12)
| Comment éviter cela, sachant que je dois laisser la possibilité de
supprimer
| un enregistrement en amont?
| Merci pour les conseils.
|
| HB
|
|





Raymond [mvp]
Le #6145231
Bonjour.

dans ce cas un simple DMax +1 suffit pour obtenir la plus forte valeur +1.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Hb" 44ec3de1$0$862$
| Merci pour l'aide, je vais essayer,
| Mais en fait, je cherche à garder une numérotation continue,
indépendamment
| des effacements d'enregistrements,
| peut être est ce un cas classique ?
|
Publicité
Poster une réponse
Anonyme