hitler007
Messages postés2Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention24 décembre 2006
-
24 déc. 2006 à 00:00
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 2007
-
29 déc. 2006 à 22:04
salut a tous,
g 1 petit probleme dans mon application"CDthèque", d'abord j'ajoute par exemple un produit"CD",je lui donne un code automatique,mé le prob c lorsque jsupprime un produit de la base de données,dans le prochain ajout, ça doit m donner automatiquement le code de ce dernier supprimer,c.a.d qu'il va chercher dans la base de donner é voir s'il manque un nb de 1 jusk'au numero du dernier enregistrement é le remplacer,pour une bonne gestion, j'espere que mon explication é clair pour vous.
alors si vous avez une ptite idée sur ce sujet poser le sur le forum ou envoyer la reponse a mon mail
yassino33@yahoo.fr
merci d'avance.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 24 déc. 2006 à 04:10
Salut
Il n'y a pas de miracle : Si ton programme ne génère pas le bon numéro, c'est que l'as mal programmé !
Comment veux-tu qu'on réponde à ta question ? Tu ne donnes aucun élément !
Heureusement que j'ai ma boule de cristal sous la main !
Elle ma dit que tu utilises la fonction "NuméroAuto" pour le champ identifiant d'un enregistrement.
Alors dans ce cas, c'est normal.
Un identifiant automatique n'est pas un numéro d'ordre. C'est un numéro unique, c'est tout.
Donc, si tu as détruis une fiche, le numéro qu'elle portait ne sera plus réutilisé.
Si tu veux que l'identifiant soit le numéro d'ordre dans ta collection, c'est à toi de le rechercher (requète avec agrégation Max) et d'insérer toi même le numéro d'identifiant (après l'avoir incrémenté, bien sûr).
Il faudra donc que tu modifies le type de champ NuméroAuto --> Numérique
PS : Ma boule de cristal est très fatiguée depuis quelques mois, mais je m'en fiche, je vais en recevoir une toute neuve ce soir, pour mon Nowel !
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 24 déc. 2006 à 08:36
Bonjour Jack et joyeux Noel...
Entièrement d' accord sur le numéro auto,
les tables indéxées sur ce type ne sont jamais
réinitialisées.
Pour le Max, je crois bien que lui, il cherche
plutôt à combler le vide entre les numéros
si il a :
125,126,127,128,129,130
et qu' il supprimes le 128, il veut que le prochain soit
le 128.Or le Max étant le 130, le prochain sera le 131.
Toujours est-il qu' il doit suivre ta méthode, s' il veut
une bonne gestion (comme il dit).
S' il pesiste dans son choix, il n' a qu' à parcourir sa table
et voir si la différence entre le courant enregistrement
et le précédent est >1. Si oui, son numéro serait
le précédent+1.
PS: Félicitation pour ta nouvelle boule de crystal,
mais ne te sépares jamais de l' ancienne....
Elle sera sûrement une pièce de collection et vaudra
de l' or dans quelques années.
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 24 déc. 2006 à 09:06
le père Noel est passé par là...
Function NouveauId() As Long
NouveauId=1
rs étant ton recordset lié à la table
Dim ExId As long
With rs
If .Bof And .Eof Then Exit Function
.MoveFirst
ExId=![Id]
.MoveNext
Do While Not .Eof
If ![Id]-ExId>1 Then Exit Do
ExId=![Id]
.MoveNext
Loop
End With
NouveauId=ExId+1
End Function
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 24 déc. 2006 à 09:25
Petite rectification :
Le numéro auto est réinitialisé qu'au compactage de la base access : si la table ne contient aucun enregistrement, alors le numéro auto est automatiquement réinitialiser à 1.
En même temps, je ne vois vraiment pas pourquoi tu voudrais ne pas avoir de trou dans les numéros ! Vu qu'une clé primaire est la liaison entre toutes les tables, il ne faut surtout pas la modifier !
Vous n’avez pas trouvé la réponse que vous recherchez ?
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 24 déc. 2006 à 11:21
pour le numero auto,
si tu vides une table qui contenait déjà des enregistrements,
dont le dernier était 10, le premier sera 11. ça ne repart jamais à 1.
Pour le combalge du trou (que je n' approuve d' ailleurs pas)
si la suppression se fait en cascade, rien n' empêche.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 24 déc. 2006 à 11:52
Si justement : si tu compacte ta base, ca repart à 1 ! Par contre, ca nécéssite un compactage (ce qui est normal, et ce qui peut-être dangereux pour les relations justement !)
hitler007
Messages postés2Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention24 décembre 2006 24 déc. 2006 à 12:54
tout d'abord merci pour votre aide,
g 2 table une pour la gestion des cd et l'autre pour la gestion des emprunts, alors le code du cd ne sera supprimer que lorsqu'il é plus emprunter,dans ce cas y'aura plus de relation avec les deux tables.
j'ai deja pensé a la solution proposé par Mr : chaibat05.
mé pour 2 supprimé ou plus ça n marchera po...
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 24 déc. 2006 à 13:41
et pourquoi ça marcherait pas ?
si tu as 125,126,127,128,129,130, 131, 132
et que tu supprimes le 127, le 128, le 129 et 131
l' écart entre le 126 et le 130 étant supérieur à 1,
le premier que tu ajouteras sera 127
l' écart entre le 127 et le 130 étant toujours supérieur à 1,
le second sera 128 ,
l' écart entre le 128 et le 130 est toujours supérieur à 1
le troisième sera 129
et le quatrième 131 car tu passes à l' écart entre 130 et 132
si tu ajoutes un cinquième ça sera le 133
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 24 déc. 2006 à 13:49
mais une question :
si tu supprimes une référence à un cd dans ta table,
c' est pas pour autant que ton cd n' éxiste plus
(matériellement je veux dire) ou alors il faut penser à
renouveler l' étiquetage , non ?