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/09/2011, 09h44   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2011
Messages : 53
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 53
Points : 11
Points : 11
Par défaut numérotation auto compliquée

Bonjour,

je vous expose mon problème,
j'ai créé un bdd qui permet de savoir si un arret de bus est accessible et j'ai un problème d'ajout de point d'arrêt sur une ligne.
donc voici ma table arretligne qui est le lien entre les arrets et les lignes:



et voici ce qui s'affiche:



et lorsque je vais dans ma table ligne voici ce qui s'affiche:



les valeurs de Num_Arret sont rentrées à la main ce qui est assez lassant quand on a 300 lignes avec plusieurs directions.
je souhaite donc que pour chaque ligne les Num_Arret s'incremente automatiquement mais si j'utilise numérotation auto je me retrouve avec des numéros comme dans ID_arretLigne et ce n'est pas le résultat escompté puisque je souhaite que pour chaque trajet la numérotation commence à 1

Merci d'avance pour vos réponses
josi1986 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 10h16   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Bonjour Josi1986,

Citation:
Envoyé par Josi1986
.../... pour chaque trajet la numérotation commence à 1 .../...
==> je suppose que par "trajet", tu entends "Itinéraire". Il est important de conserver la même terminologie, cela limite les ambiguïtés.

Tu peux créer une requête (via l'assistant) :
- ajouter la table "arretligne" (FROM) ;
- passer en mode "regroupement" ∑ (GROUP BY) ;
- sélectionner ID_Itineraire, Max(Num_Arret)+1 (SELECT) ;
- critères (Où) ID_Itineraire = ChampDeTonFormulaireDeSaisie (WHERE).
==> l'appel de cette requête, avec l'itinéraire concerné de donnera le prochain Num_Arret à utiliser.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 11h14   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2011
Messages : 53
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 53
Points : 11
Points : 11
Citation:
Envoyé par Richard_35 Voir le message
Bonjour Josi1986,

==> je suppose que par "trajet", tu entends "Itinéraire". Il est important de conserver la même terminologie, cela limite les ambiguïtés.

.
Oui c'est bien Itinéraire

et pour etre plus clair voici les liens entre mes tables



Je me suis mal exprimé, le problème est un peu plus compliqué en fait.

On part du principe que tous les Num_Arret ont été entré à la main,

je souahite à présent pouvoir modifer mon itinéraire en lui ajoutant un point d'arrêt ou en supprimant un point d'arrêt.

si je supprime uniquement le dernier point d'arret ça serait facile mais dans le cas ou j'ajoute un point d'arrêt et que je souhaite l'intercaler entre le Num_Arret 4 et le Num_Arret 5 mon nouvel arrêt devrait prendre le numéro 5 et les arrets suivant se décaleraient donc de +1.

de même en supprimant un arrêt les arrêt suivants se décaleraient de -1.

je pense que cette fois mon problème est posé plus clairement.
merci d'avance pour vos réponse
josi1986 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 11h53   #4
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Citation:
Envoyé par Josi1986
je pense que cette fois mon problème est posé plus clairement.
==> oui. Tu veux, en fait, si j'ai bien compris, gérer manuellement l'ordre des arrêts tout en les numérotant de à n.

Suggestion :

Dans ta table ArretLigne :
- ID_ArretLigne (clé primaire, numéro auto)
- ID_Itineraire
- Num_Arret
...

Ajout d'un champ :
- Num_Arret_Sequence ==> numéroté de 100 à n, par pas de 10 (qu'il faut initialiser, au départ)

Création d'une requête qui :
- renumérote Num_Arret de 1 à n, par pas de 1, dans l'ordre de Num_Arret_Sequence ;
- renumérote Num_Arret_Sequence de 100 à n, par pas de 10.
==> et rebelote...

Exemple :
Code :
1
2
3
4
5
ID_ArretLigne  ID_Itineraire  Num_Arret  Num_Arret_Sequence
1              22             1          100
2              22             2          110
3              22             3          120
4              22             4          130
Ajout d'un arrêt entre 2 et 3 :
Code :
1
2
3
4
5
6
ID_ArretLigne  ID_Itineraire  Num_Arret  Num_Arret_Sequence
1              22             1          100
2              22             2          110
3              22             3          120
4              22             4          130
5              22                        115
Renumérotation :
Code :
1
2
3
4
5
6
ID_ArretLigne  ID_Itineraire  Num_Arret  Num_Arret_Sequence
1              22             1          100
2              22             2          110
3              22             4          120
4              22             5          130
5              22             3          115
Puis :
Code :
1
2
3
4
5
6
ID_ArretLigne  ID_Itineraire  Num_Arret  Num_Arret_Sequence
1              22             1          100
2              22             2          110
3              22             4          130
4              22             5          140
5              22             3          120
Trié dans le bon ordre :
Code :
1
2
3
4
5
6
ID_ArretLigne  ID_Itineraire  Num_Arret  Num_Arret_Sequence
1              22             1          100
2              22             2          110
5              22             3          120
3              22             4          130
4              22             5          140
Je pense que tu voies l'idée.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 14h25   #5
Candidat au titre de Membre du Club
 
Inscription : juillet 2011
Messages : 53
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 53
Points : 11
Points : 11
le problème est que dans ce cas, si j'ai bien compris, l'utilisateur devra écrire 115 pour insérer un arret entre l'arret 2 et l'arret 3.
Alors que l'utilisateur ne voit que le Num_Arret.

Mais en même temps je ne vois pas comment raisonner autrement. donc si vous avez des solutions à proposer je suis preneur
josi1986 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 14h36   #6
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Bonjour Josi1986,

Citation:
Envoyé par Josi1986
.../... l'utilisateur devra écrire 115 pour insérer un arret entre l'arret 2 et l'arret 3.
==> oui.


Citation:
Envoyé par Josi1986
Alors que l'utilisateur ne voit que le Num_Arret.
==> non. Cela dépend comment tu conçois ton formulaire : il est trié par Num_Arret (non saisissable) et présente Num_Arret_Sequence (saisissable).


Tu peux, également, utiliser :
  • le glisser/déposer (drag and drop) pour une utilisation "graphique" à la souris ;
  • le système "descendre/monter" dans une liste : sélection + flèche haut/bas.
Ces deux systèmes peuvent utiliser Num_Arret_Sequence. Dans tous les cas, il te faudra renuméroter Num_Arret en balayant le résultat.


Pour résumer, il y a deux choses :
  • la conception (Num_Arret_Sequence). A mon avis, tu n'y coupes pas ;
  • le processus (qualité ergonomique du formulaire).
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 15h13   #7
Candidat au titre de Membre du Club
 
Inscription : juillet 2011
Messages : 53
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 53
Points : 11
Points : 11
Bonjour,

Est-ce que tu pourrais fournir plus de détail sur ces solutions, car je n'ai rien trouvé sur les à ce sujet.
De plus, j'ai déja le formulaire suivant où tous les champs sont modifiables dont Num_Arret (N° Arret). ( A la vue de celui-ci tu comprendras que je suis débutant en access )



Au début j'avais pensé à modifier manuellement les Num_arrêt lors d'un ajout de point d'arrêt mais je me suis rendu compte que le formulaire affichait les arrets dans l'ordre de ID_ArretLigne et non pas de Num_Arret.
Donc maintenant avec tes solutions dois-je faire un nouveau formulaire juste pour ajouter ou supprimer des arrêts et garder l'actuel ou est-ce que je dois tout refaire?
josi1986 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 15h59   #8
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Citation:
Envoyé par Josi1986
.../... mais je me suis rendu compte que le formulaire affichait les arrets dans l'ordre de ID_ArretLigne et non pas de Num_Arret.
==> ce n'est pas le formulaire qui commande !... il fait ce que tu lui dis de faire.


Citation:
Envoyé par Josi1986
Donc maintenant avec tes solutions dois-je faire un nouveau formulaire juste pour ajouter ou supprimer des arrêts et garder l'actuel ou est-ce que je dois tout refaire?
==> ce formulaire convient-il aux utilisateurs ?
De cette réponse découlera ce que tu dois faire de ce formulaire. Personnellement, je le trouve un peu touffu... mais bon, mon avis n'a aucune importance.

Dans tous les cas, le formulaire que tu présentes gère un ensemble de données. Je pense que la gestion de l'ordre des arrêts doit être effectuée dans un formulaire différent appelé par celui-ci (à partir d'un bouton de ce formulaire nommé "Ré-organisation des arrêts", par exemple). En effet, le processus de gestion de l'ordre des arrêts est différent de celui de renseignement des attributs de ces arrêts.

Ensuite, il te faudra choisir, avec les utilisateurs, la méthode adéquate.

Enfin, je ne connais pas VBA et ne pourrait donc t'aider sur la programmation de ces deux solutions :
  • le glisser/déposer (drag and drop) pour une utilisation "graphique" à la souris ;
  • le système "descendre/monter" dans une liste : sélection + flèche haut/bas.
Peut-être qu'une bonne âme codeuse, pourrait t'aider... pour cela, il faut lui préparer le travail en présentant une maquette de ce que tu souhaites (formulaire, champs, bouton, etc...) avec les différents traitements que tu désires.

Je ne sais pas si j'ai été bien clair, sur ce coup là...
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 16h08   #9
Candidat au titre de Membre du Club
 
Inscription : juillet 2011
Messages : 53
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 53
Points : 11
Points : 11
ok, merci,
donc je verrais par la suite pour le VBA.

Sinon en ce qui concerne le formulaire:

- moi aussi je le trouve touffu mais l'utilisateur souahite avoir toutes les champs sur le même formulaire et que ceux ci soient modifiables donc pas trop le choix de faire autrement.

- J'ai essayé de changé l'ordre d'apparition en cliquant sur le champ Num_Arret et en selectionnant Tri croissant mais il affiche tout de même les arrêts dans l'ordre croissant de ID_ArretLigne, quelle est la solution dans ce cas?
josi1986 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 16h11   #10
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Citation:
Envoyé par Josi1986
J'ai essayé de changé l'ordre d'apparition en cliquant sur le champ Num_Arret et en selectionnant Tri croissant mais il affiche tout de même les arrêts dans l'ordre croissant de ID_ArretLigne, quelle est la solution dans ce cas?
==> la source de donnée de ton formulaire doit être triée par ID_ArretLigne, et non par Num_Arret.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 09h27   #11
Candidat au titre de Membre du Club
 
Inscription : juillet 2011
Messages : 53
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 53
Points : 11
Points : 11
Citation:
Envoyé par Richard_35 Voir le message
==> la source de donnée de ton formulaire doit être triée par ID_ArretLigne, et non par Num_Arret.
je ne comprends pas, veux tu dire triée par Num_Arret et non pas par ID_ArretLigne?
puisque le tri est déja effectu par ID_ArretLigne, mais je ne sais pas comment à présent modifier le tri
josi1986 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 10h01   #12
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Bonjour Josi1986,

Le formulaire où apparaît ID_ArretLigne possède bien une source de données, non ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 10h46   #13
Candidat au titre de Membre du Club
 
Inscription : juillet 2011
Messages : 53
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 53
Points : 11
Points : 11
Sur mon formulaire le champ ID_ArretLigne n'apparait pas
c'est pour cette raison que je ne comprends pas pourquoi le tri se fait selon ce champ
josi1986 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 11h03   #14
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Citation:
Envoyé par Josi1986
Sur mon formulaire le champ ID_ArretLigne n'apparait pas
==> ce n'est pas parce qu'il n'apparaît pas, que la requête sous jacente n'est pas triée par ce champ.


As-tu analysé la source de données de ce formulaire ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 11h24   #15
Candidat au titre de Membre du Club
 
Inscription : juillet 2011
Messages : 53
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 53
Points : 11
Points : 11
comment faut-il faire pour vérifier la source de données du formulaire?
josi1986 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 11h47   #16
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Citation:
Envoyé par Josi1986
comment faut-il faire pour vérifier la source de données du formulaire?
==> il me semblait que c'est toi qui avait créé ce formulaire.
Ce formulaire a bien été créé à partir d'une requête (ou d'une table), non ?
==> dans les propriétés du formulaire, en mode création, repères la "source de données".
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 11h59   #17
Candidat au titre de Membre du Club
 
Inscription : juillet 2011
Messages : 53
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 53
Points : 11
Points : 11
oui, j'ai bien créé ce formulaire,
il est créé à partir de plusieurs tables, requêtes et sous formulaires.

La source de mon champ est bien Num_arret
Et dans propriétés du formulaire-->données-->tri j'ai mis Num_Arret
josi1986 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 12h09   #18
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Citation:
Envoyé par Josi1986
oui, j'ai bien créé ce formulaire,
il est créé à partir de plusieurs tables, requêtes et sous formulaires.
==> peux-tu poster la source de données uniquement du sous-formulaire qui contient Num_Arret ?
En mode création du sous-formulaire, click-droit, source de données.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 13h56   #19
Candidat au titre de Membre du Club
 
Inscription : juillet 2011
Messages : 53
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 53
Points : 11
Points : 11
en faisant click droit sur le sous formulaire puis propriétés j'ai ceci:


josi1986 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 14h19   #20
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Si tu as fais un click droit sur le bon sous-formulaire, alors la table ArretLigne devrait t'être présentée triée par Num_Arret.

Peux-tu créer un formulaire bidon dans lequel tu saisirais la même source de données et voir ce que cela donne ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h12.


 
 
 
 
Partenaires

Hébergement Web