Access : Numérotation programmée de dossier

Fermé
spiritspy Messages postés 118 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 13 août 2009 - 11 août 2008 à 09:17
spiritspy Messages postés 118 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 13 août 2009 - 12 août 2008 à 13:47
Bonjour,
J'ai plusieurs questions mais je vais commencer par la plus importante, je ferais un autre post pour le reste (suivi des modifs : lecture ou modif d'enregistrement dans un journal).

Dans une base Access, je créé des dossiers commandes, il peux y en avoir plusieurs par jour et ceci tout au long de l'année.
Je sais que chaque dossier est un enregistrement avec une numérotation automatique, mais je voudrais que ma base créé automatiquement un numéro de dossier style 08-0123 (année et numéro d'ordre partant de zéro au début de l'année).
Combien de champs dois-je créer ? 1 texte ou 2 numériques, et quelle manip en VB pour analyser la présence d'enregistrement depuis le 1er janvier minuit de l'année en cours ?

J'espère avoir formulé correctement ma demande.
Merci d'avance pour toute réponse.

8 réponses

je c pa si nsa existe sur access mai sur oracle oui tu pe utiliser la variable sysdate qui retourne la date systeme avec une fonction tq to_char qui va la convertire en chaine de caractéres et avec une séquence le tour est joué.
0
je me ss un pe renseigné et je suis contrain de te dire que non ya pa une numérotation séquencielle sur access
0
spiritspy Messages postés 118 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 13 août 2009 7
11 août 2008 à 09:36
Merci gigi_max, mais:
1- je n'utilise pas Oracle (ma boîte ne veux plus en entendre parler en plus depuis NT4),
2- je vais devoir mettre cette base sous Windows Serveur 2003,
3- je travaille sous Access 2003,
4- je découvre l'Access en bases frontales et modales, je me débrouille mais je ne suis pas un génie ;-)

Alors qui peux gentillement m'aider SVP ?
-1
spiritspy Messages postés 118 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 13 août 2009 7
11 août 2008 à 10:43
Oupssss posté après ta réponse à quelques secondes près ...

Donc ce n'est pas une fonction intégrée à Access, j'ai eu en main une base où les dossiers étaient incrémentés de la même façon que celle que je recherche mais impossible d'en avoir le code ... Comme quoi c'est faisable, mais je n'ai pas encore le niveau ...

Si du code existe pour cela, je suis preneur.
Merci de ta réponse rapide gigi_max
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
11 août 2008 à 10:57
Bonjour,

Il est toujours possible de créer un code arbitraire. Il suffit de dédier un champ dynamique à cet effet.
- Jai eu l'occasion d'utiliser la syntaxe SQL suivante :

SELECT Format([Datesaisie],"yyyy" & "mm" & "dd") & [<Argument>] AS Numérotation
FROM <Table>;

- Ce qui permet, et ce n'est qu'un exemple, d'avoir un format du type "20080810"+[<Champ>]


Cordialement
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
-1
spiritspy Messages postés 118 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 13 août 2009 7
12 août 2008 à 09:42
Merci de cette réponse Jean-Jacques, mais vu mon niveau, je comprends vite mais faut m'expliquer longtemps ou différement:

- Lorsque mon formulaire est rempli, j'appuis sur un bouton "Validation", il va lancer:
sqldossier = SELECT Format([Datesaisie],"yy") & [<Argument>] AS Numérotation FROM <Table>;
- Je n'est besoin que des 2 derniers chiffres de l'année "yy", mais [Datesaisie] peut-il être Date () ou Now () ? Car c'est la date du jour et pas une date entrée manuellement.
- Mon [<Argument>] sera donc un chiffre que j'aurais en mémoire dans un champs de ma table car calculé à chaque fermeture de nouvel enregistrement et donc vérifié systématiquement ... Pfffff
- Et donc un 2nd champs en plus dans ma table, nommé Numérotation qui est mon n° de dossier.

J'ai sûrement l'air d'un taré et bien lourd, mais il faut que je comprenne la logique et c'est pas gagné cette affaire ...

Merci d'avance de m'aider dans cette base qui commence à être une usine à gaz ...
-1
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
12 août 2008 à 10:22
Bonjour spiritspy,

Si je lis bien ton message, tu as tout compris :

Un code étant arbitraire par définition, tout ce que tu avances est pertinent. Et faisable ...
La date à prendre en compte peut être, indifféremment : La date par défaut du champ qui contient la date ; ou bien la date système ; ou bien une date saisie manuellement (à déconseiller); etc ....

A titre d'exemple, voici 2 syntaxes qui extraient "08" pour 2008

SELECT Mid(Now(),4,2) & [<Argument>] FROM <Table>;
SELECT Mid(date(),4,2) & [<Argument>] FROM <Table>;

Je n'ai pas testé le code, mais je suis confiant

A +
Reprends confiance, tout le monde a débuté un jour...

La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
-1
spiritspy Messages postés 118 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 13 août 2009 7
12 août 2008 à 13:47
Merci Beaucoup Jean-Jacques,

Pour ce sujet, il ne me reste plus qu'à vérifier l'existence d'un enregistrement depuis le début de l'année en cours et faire une incrémentation du n° d'ordre, je suis persuadé de l'avoir vu quelque part ... c'est pas dans mes cours ça !!!

Je vais gratter cette dernière croute, encore merci.
-1