Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/06/2008, 19h59   #1
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 155
Points : 35
Points : 35
Par défaut Mettre des chiffres qui se suivent

Bonsoir,

Dans une table mèmoire comment mettre des chiffres en continus ?

Je m'explique:
Cette table est parfois remplit par une requête Ajout, parfois elle est vide, j'ai besoin d'avoir toujours dans le champ "Suivie" le chiffre 1 en première ligne et la suite 2 3 4 5 6 7 8 9 10 etc. sur les autres enregistrement, si je met un numéroAuto ça ne va pas car il y a plusieurs lancement de requête et du coup les chiffres redémarre à 350 par exemple et non à 1.

Merci.
AgriPhilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2008, 23h12   #2
Modérateur
 
Avatar de mout1234
 
Inscription : novembre 2006
Messages : 2 200
Détails du profil
Informations personnelles :
Âge : 43
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2006
Messages : 2 200
Points : 2 699
Points : 2 699
Bonsoir,

Je serai curieux de connaitre ce qui motive ce besoin ...

As-tu remarqué qu'en compactant la base de données, lorsque la table est vide, les numéros automatiques redémarrent à 0.


Sinon, si tu initialises ta table avec les numérotation qui te conviennent et qu'au lieu de faire des ajouts tu fais des mise à jour... ça peut le faire, non ?
__________________
............................................................................................

Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.


Les FAQs les tutos Les Sources Access Profitez de ces mines d'or...

Postez dans le bon sous forum et mentionnez la version
mout1234 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 11h50   #3
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 155
Points : 35
Points : 35
Bonjour et Merci,

Je serai curieux de connaitre ce qui motive ce besoin ...

Parce que je veux calculer un solde "message précédent" suivant l'exemple de Starec
Code :
:Solde: CDbl(SomDom("Qté";"table1";"[ordre]<=" & [ordre]))
Si je fais ça dans mon sous formulaire lié à mon formulaire principal ça ne va pas, car les chiffres sur ordre ne se suivent pas ou sont égaux à eux même par exemple 41 41 41, les résultats des soldes sont faux, donc mon idée est de passer par une table mémoire, à chaque sélection d'un produit le sous formulaire afficherait le solde ligne par ligne, et sur chaque clique d'un produit les requêtes actions pourraient modifier cette table pour en voir le résultat, sur chaque clique ordre commençant par 1 2 3 4 5 6 etc.

Je suis clair ?
AgriPhilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 11h58   #4
Membre Expert
 
Avatar de Renardo
 
Renald Chauvet
Inscription : avril 2006
Messages : 1 581
Détails du profil
Informations personnelles :
Nom : Renald Chauvet
Âge : 48

Informations forums :
Inscription : avril 2006
Messages : 1 581
Points : 1 750
Points : 1 750
peut etre que ce lien pourrait aider
http://www.developpez.net/forums/sho...d.php?t=522337
Renardo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 11h58   #5
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 155
Points : 35
Points : 35
J'ai fais un essai avec
Code :
Nz(MaxDom("Ordre";"Table1");0)+1
Dans une requête mise à jour mais le résultat est faux il met le même chiffre partout par exemple 5 au lieu de 1 2 3 4 5 6 7 8 etc.

Une idée ?

Bon Dimanche
AgriPhilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 17h34   #6
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 266
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 266
Points : 11 081
Points : 11 081
Cette sub fera peut-être l'affaire :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Sub Renuméroter(NomTable As String, ChampAutoNum As String, ChampRenuméroté As String)
 'ex call Renuméroter("Tst","AutoNum","Renuméroté")
Dim i As Integer
Dim rs As Recordset
Dim sql As String
i = 1
sql = "SELECT " & NomTable & ".* FROM " & NomTable & " ORDER BY " & NomTable & "." & ChampAutoNum & ";"
'Debug.Print sql
Set rs = CurrentDb.OpenRecordset(sql)
Do Until rs.EOF
rs.Edit
rs(ChampRenuméroté) = i
rs.Update
i = i + 1
rs.MoveNext
Loop
End Sub
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 18h21   #7
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 155
Points : 35
Points : 35
Merci Claude, je colle ce sub à quel endrois ?


@ bientôt.
AgriPhilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 19h03   #8
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 266
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 266
Points : 11 081
Points : 11 081
Dans un module.
Lorsque tu veux "renuméroter", tu appelles la sub
Code :
call Renuméroter("LeNomdeTaTable","LeNompDuChampAutoNum","leNomDuChampARenuméroter")
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 19h06   #9
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 155
Points : 35
Points : 35
Encore merci Claude,

C'est bon, j'ai bien compris.

@+ Bon Dimanche


AgriPhilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 19h11   #10
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 155
Points : 35
Points : 35
Claude,

Lorsque je compile le code il s'arrête sur :

Do Until rs.EOF
rs.Edit

Je fais comment ?

Merci.
AgriPhilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 19h25   #11
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 266
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 266
Points : 11 081
Points : 11 081
Il te manque probablement une référence.
Ouvre un module.
Dans le menu outils / References
Coche Microsoft DAO 3.6 Object Library.
Compile à nouveau, cela devrait marcher
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 20h47   #12
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 155
Points : 35
Points : 35
Claude,

J'ai bien coché comme tu m'as dis, mais ça ne va pas, j'ai également coché d'autres librairy sans succés.

Encore merci.
AgriPhilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 20h58   #13
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 155
Points : 35
Points : 35
ça semble fonctionner concernant le problème sur .edit

Maintenant il s'arrête sur cette ligne :
Code :
Set rs = CurrentDb.OpenRecordset(sql)
Elle est mise en jaune, je dois créer ma requête en sql peut-être ?

@+
AgriPhilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 08h36   #14
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 266
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 266
Points : 11 081
Points : 11 081
J'ai testé. Si ça marche chez moi, ... chez toi ça doit marcher
2 causes possibles :
ou bien : les noms indiqués comme paramètres sont mal orthographiés
ou bien : le type de ton champ "A renuméroter" est <> de 'entier'.

Pour analyser :
1° dans la sub retire l'apostrophe " ' " devant Debug.print.
2° exécute la sub
3° récupère le sql généré dans la fenêtre d'exécution
4° crée un requête avec ce sql
5° examine la requête en mode 'création' et tu visualiseras ainsi ton problème.
Bonne continuation
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 12h41   #15
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 155
Points : 35
Points : 35
Merci beaucoup Claude,

Je reprends un rythme normal, le soleil est de retour j'ai beaucoup de travail, cette fois ton code fonctionne.

Encore merci.

@+
AgriPhilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 06h18   #16
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 266
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 266
Points : 11 081
Points : 11 081
Bonjour Nounours1,

Pour que ceci fonctionne il faut :
1° que la table contienne un champ qui permet de trier la table par ordre de création.
Par exemple un champ du type ‘NuméroAuto’. Cela pourrait aussi être un champ qui, à la création de l’enregistrement, aurait reçu la valeur ‘maintenant()’ par défaut.
Peu importe que ce champ soit la clé.
2° Que la table contienne un autre champ: celui destiné à recevoir le N° de suite continue.
3° A l’instant où on souhaite renuméroter, on appelle (call) la sub avec les 3 paramètres :
‘le nom de la table’
‘le nom du champ qui contient la séquence de création’
‘le nom du champ qui doit accueillir le N° de suite’
4° Que cette fonction soit logée dans un module.
5° Dans les références cocher Microsoft DAO 3.6 Object Library
Au plaisir.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h06.


 
 
 
 
Partenaires

Hébergement Web