Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Sondages et Débats

Sondages et Débats Forum destiné à recevoir les échanges, avis et sondages autour de la technologie Access.

Réponse
 
Outils de la discussion
Vieux 02/05/2008, 18h06   #1 (permalink)
Invité de passage
 
Date d'inscription: mai 2008
Messages: 2
Par défaut Champ numéro auto

je veux savoir ce qui va ce passé quant un champ numauto atteint 999 999 enregistrement

merci
george2000 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/05/2008, 19h42   #2 (permalink)
Membre Expert
 
Avatar de Danjos
 
Date d'inscription: août 2007
Localisation: Abidjan - Côte d'Ivoire
Messages: 1 029
Par défaut

Logiquement si on considère qu'Access ne prend que 999 999 enregistrements par table, je suppose que si cette valeur est atteinte, un message d'erreur va s'afficher pour interdire une nouvelle insertion.
__________________
Un gros problème est la somme de plusieurs petits problèmes.
Resolvez chacun des petits problèmes: vous aurez resolu le gros problème!
Danjos est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/05/2008, 09h55   #3 (permalink)
Membre éprouvé
 
Avatar de stigma
 
Date d'inscription: octobre 2003
Localisation: Picardie
Âge: 58
Messages: 417
Envoyer un message via MSN à stigma
Par défaut

Je viens de faire un test avec Access 2003. J'ai créé 10 000 000 lignes avec un numéro Auto.
Pas de pb
Code :
Sub test()
 
    Dim db As Database, rst As Recordset, i
    
    Set db = CurrentDb
    Set rst = db.OpenRecordset("Table1")
    With rst
        For i = 1 To 10000000
            .AddNew
            .Fields("valeur") = "test"
            .Update
        Next
        .Close
    End With
    
    MsgBox "fin"
 
End Sub
 
Taille de la base à l'arrivée : 273 M°
__________________
Access 2003 DAO OU ADO + VBA + VBA + VBA
stigma est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/05/2008, 12h41   #4 (permalink)
Membre émérite
 
Avatar de =JBO=
 
Date d'inscription: février 2005
Localisation: France - Drôme
Messages: 943
Par défaut

Bonjour,

Dans Access/Jet, le numéro auto est basé sur un champ de type Long.
C'est à dire qu'un champ de type NuméroAuto devrait pouvoir prendre comme valeur n'importe quelle valeur conforme au type Long.

Le type Long permet de représenter des valeurs comprises entre -2 147 483 648 et 2 147 483 647.
En dehors de ces limites, il y a une erreur de dépassement de capacité (erreur n° 6).

Je n'ai jamais entendu parler de numéro auto négatif... Et vous ???
En revanche, on peut choisir la manière de calculer le prochain n°, soit par un incrément (normalement d'une unité), soit par obtention d'un n° aléatoire.

Donc, en théorie, il serait possible d'identifier plus de 2 milliards d'enregistrements distincts dans une table...

Intéressé par les limites d'Access (tout comme stigma ) j'ai aussi fait un test.
Dans une base de données vierge, j'ai créé une unique table qui contient un unique champ de type NuméroAuto.
Puis j'ai lancé une bête procédure d'insertion de nouveaux enregistrements jusqu'à ce qu'une erreur se déclenche (procédure en VBA DAO).

Bilan:

* Lorsque la base de données est pleine (environ 1,99 Go), une erreur se déclenche non pas à l'insertion, mais à la mise à jour de l'enregistrement à insérer.
Le message d'erreur (ici DAO) n'est pas explicite:
Citation:
N° erreur: 3001
Description: Argument non valide
Source: DAO.Recordset
* La table contient 93.770.640 enregistrements.

Conclusion:

En pratique, une table Access possédant au moins un champ de type NuméroAuto ne peut contenir plus de 93.770.640 enregistrements.

~~~~~~~~

Voilà une information qui ne servira peut être à personne, mais bon, c'est pour les curieux qui veulent savoir...
_
__________________
Les bons réflexes VB/VBA: __ Option Explicit ___ Toujours compiler le code avant de tester ! (dans l'EDI, menu Débogage, commande Compiler)
=JBO= est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/05/2008, 13h39   #5 (permalink)
Membre Expert
 
Avatar de Danjos
 
Date d'inscription: août 2007
Localisation: Abidjan - Côte d'Ivoire
Messages: 1 029
Par défaut

Citation:
Envoyé par =JBO= Voir le message
Bonjour,
Je n'ai jamais entendu parler de numéro auto négatif... Et vous ???
Je crois pas aussi que cela puisse exister.

Citation:
Envoyé par =JBO= Voir le message
La table contient 93.770.640 enregistrements.
Est ce à dire que la taille maximale d'une BD étant de 2GO, cela correspond il exactement à 93.770.640 enregistrements?
Les types de données des champs des tables de la BD ne contribuent-ils pas à modifier cette valeur?
__________________
Un gros problème est la somme de plusieurs petits problèmes.
Resolvez chacun des petits problèmes: vous aurez resolu le gros problème!
Danjos est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/05/2008, 13h45   #6 (permalink)
Membre éprouvé
 
Avatar de stigma
 
Date d'inscription: octobre 2003
Localisation: Picardie
Âge: 58
Messages: 417
Envoyer un message via MSN à stigma
Par défaut

Citation:
Envoyé par Danjos Voir le message
Les types de données des champs des tables de la BD ne contribuent-ils pas à modifier cette valeur?
Bien sûr, un champ Single prendra plus de place qu'un champ Integer par exemple.
__________________
Access 2003 DAO OU ADO + VBA + VBA + VBA
stigma est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/05/2008, 14h57   #7 (permalink)
Responsable MSOffice
 
Avatar de Lou Pitchoun
 
Date d'inscription: février 2005
Localisation: Au soleil, Made In Marseille
Âge: 30
Messages: 5 137
Envoyer un message via MSN à Lou Pitchoun
Par défaut

Citation:
Envoyé par Danjos Voir le message
Je crois pas aussi que cela puisse exister.


Est ce à dire que la taille maximale d'une BD étant de 2GO, cela correspond il exactement à 93.770.640 enregistrements?
Les types de données des champs des tables de la BD ne contribuent-ils pas à modifier cette valeur?
Je dirais exactement 93.770.640 enregistrements pour une table ayant un champ de type numéroAuto

Citation:
Envoyé par =JBO=
Dans une base de données vierge, j'ai créé une unique table qui contient un unique champ de type NuméroAuto.
Ce qui signifie que si tu as plus de champs, ton nombre d'enregistrement diminue : la place occupée étant plus importante pour un enregistrement.
__________________
Responsable Office
Futurs Modérateurs, Rédacteurs : We need you

Access : Les Cours, Les Sources et Les FAQs Office
Avant de poster : les choses importantes à lire pour la bonne tenue du forum.
sinon

Ma boite à MPs n'est pas l'annexe du forum Le complément BouleDeCristal n'existe pas encore !!!
Lou Pitchoun est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/05/2008, 15h26   #8 (permalink)
Membre Expert
 
Date d'inscription: mai 2005
Localisation: IDF - 94
Messages: 1 081
Par défaut numAuto négatif

Citation:
Envoyé par =JBO= Voir le message
Bonjour,
Je n'ai jamais entendu parler de numéro auto négatif... Et vous ???
Ca n'est pas courant mais c'est possible.
Passez la cde suivante sur un NumAuto
Code :
ALTER table MaTable ALTER ChampAuto COUNTER(-5,-1)
Vive la science
micniv est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Sondages et Débats

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide