Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
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 29/06/2011, 19h06   #1
Invité de passage
 
Inscription : juin 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 5
Points : 0
Points : 0
Par défaut Construction d'un code pour archivage de documents

Bonjour,
comme le titre l'indique, je cherche actuellement à construire un code pour archiver des documents. Il contient 4 composantes, un numéro de dossier, un numéro de département, un type, et une année que je relie par concaténation pour former le code d'archivage.
Je suis confronté à 2 problèmes en ce moment:

1) en reliant par concaténation un chiffre, par exemple 003, seul le 3 est pris ds le code d'archivage. J'ai réussi pour les champs année et département à corriger celà en les passant en "texte" . Mais pour le numéro de dossier qui est un incrément de type NuméroAuto, comme je ne peux pas changer le type, je ne vois pas comment le convertir pour qu'il affiche bien le nombre de cractère voulus avec des 0 devant si besoin.

2) je voudrais également que dans le formulaire de saisie, l'utilisateur n'ait qu'à choisir le département dans la liste déroulante TOUT EN concaténant le numéro de département associé dans le code. Jusqu'à présent j'ai réussi à faire l'un ou l'autre mais pas les 2 en même temps.

Merci de votre aide.
jeankliss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 21h25   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Je te conseille de garder en interne tes informations dans des champs séparés dans ta table et de seulement calculer ton code d'archivage pour l'affichage à un humain ce qui va grandement simplifier ton problème.

Ex de code :

Code :
1
2
3
4
5
6
7
8
Public function CalculerCodeDossier(prmAnnee as long, prmCodeDepartement as long, prmAutreTexte as string) as string
   dim result as string
   result=""
   result=result & format(prmAnnee,"0000") 'Ajoute l'annee sur 4 chiffres
   result=result & format(prmService, "000") 'Ajoute le service sur 3 chiffres
   result=result & left(trim(prmAutreTexte) & space$(25) ,25) 'Ajoute l'autre texte sur 25 caractères
   CalculerCodeDossier=result
end function
Si ce code est fixe tu peux aussi le calculer après la création et l'enregistrer dans ta table dans un champ tout en gardant ses composantes séparées dans d'autre champ.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 21h32   #3
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 258
Points : 5 258
Salut,

As-tu essayé avec la fonction Format:

Code :
=Format([N°Dossier];"000") & Dept...
A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 21h56   #4
Invité de passage
 
Inscription : juin 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 5
Points : 0
Points : 0
salut, merci pour les réponses.

1)marot

dans la solution que tu proposes, il me semble qu'il n'y a aucune partie du code qui ne soit un incrément, et c'est plutôt ça qui pose problème dans mon cas plus le fait que de juste concaténer parce que donner le bon format à variable qui est saisie, j'arrive à le faire


2) user
mon niveau est élémentaire en access, donc je programme pas tellement mais je clique dans les fenêtres ce que je veux. Si ce que tu proposes revient au même que de mettre format 000 dans les propriétés du champ, et bien j'ai déjà essayé et ça marche pas.

donc bon je vais quand même essayer ce que vous dites mais je suis pas sûr que ça soit ça.

merci de votre aide
jeankliss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 22h51   #5
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 258
Points : 5 258
Salut,

Ma proposition est un bref résumé de la solution proposé par Marot (je n'avais pas vu sa réponse ayant posté dans la même période de temps )

Donc je te propose de suivre la méthode proposé par Marot
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 17h04   #6
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Citation:
dans la solution que tu proposes, il me semble qu'il n'y a aucune partie du code qui ne soit un incrément, et c'est plutôt ça qui pose problème dans mon cas plus le fait que de juste concaténer parce que donner le bon format à variable qui est saisie, j'arrive à le faire
Pourrais-tu donner un exemple d'un code que tu veux obtenir et en expliquer les morceaux ?

De ce que j'en ai compris, pour l'incrémentation, peut-être pourrais-tu avoir un champ auto-num parmis les différents champs constituant ton code de dossier. Ce champ serait ensuite affiché par la fonction de calcul du code par exemple en le formatant sur 10 chiffres.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r 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 03h33.


 
 
 
 
Partenaires

Hébergement Web