Ajout de caractères dans champs table ACCESS

Frédéric -  
blux Messages postés 27910 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour le forum,

Je voudrais ajouter les enregistrements du champ "Matricule" d'une table ACCESS autant de "0" nécessaire pour que la longueur du champ qui est initialement à 5 soit à 8 caractères.
Par la suite je voudrais vérifier la présence chaque enregistrement du champ cette table dans une autre table de la base qui possède aussi le champ matricule.

Merci pour votre aide

Frédéric
A voir également:

5 réponses

kubito Messages postés 320 Statut Membre 12
 
slt,

je pense que tu peux faire un masque de saisie dans les propriétes de ton champs. Jette un coup d'oeil egalement au format de ton champ.
Bon courage

bye

_______________________________
SCV ready to go sir
0
Frédéric
 
Bonjour Kubito,

Merci pour ta réponse mais quand est -il pour la recherche des enregistrements dans une deuxième table ?
0
kubito Messages postés 320 Statut Membre 12
 
fred,

pourrais repeter cette histoire de matrcule ; je ne comprends pas tres bien ta question. Merci

bye

_______________________________
SCV ready to go sir
0
Frédéric > kubito Messages postés 320 Statut Membre
 
Re-bonjour Kubito,

J'ai une base de données ACCESS qui contient deux tables.
Dans la première table, il y a trois champs :
- code Matricule (longueur : 5; Numérique)
- nom (longueur : 20 ; Texte)
- prenom (longueur : 20 ; Texte)

dans la deuxième table, j'ai la même structure avec comme différence la longueur du premier champ qui est 8 caractères

Je souhaite faire deux choses:

1-/ Après avoir modifier (numérique ==> Texte) le type du champ code Matricule de la 1ère table, ajouter autant de "0" à chaque enregistrement pour atteindre une longueur de 8 caractères.

2-/ Créer un 4ème champs dans la première table intitulé "Recherche" et ayant les valeurs soit "VRAI" si le matricule de l'enregistrement existe dans la deuxième table, soit "FAUX" s'il n'y est pas.

Merci

Frédéric
0
kubito Messages postés 320 Statut Membre 12
 
OK.

Dans la 2ème table, le champs matricume est numerique de taille 8. OK ? Au fait pourkoi la taille passe de 5 à 8 ?
Secundo, as tu des notions de programmation VB car apparemment, on va en avoir besoin.

_______________________________
SCV ready to go sir
0
Frédéric
 
Kubito,

On passe de 5 à 8 caractères parce que tout simplement la code matricule a été modifié pour permettre avoir plus d'enregistrement dans la table.

Je me disais que la programmation en VBA serait certainement nécessaire. J'ai quelques notions de VB sous EXCEL mais je suis une bille sous VBA / ACCESS.

Fred
0
Frédéric
 
Bonjour,

Je n'ai toujours pas eu de solution à mon problème. Si d'aventure quelqun a une idée de solution, je suis preneur.

Merci

Fred
0
marvinrouge
 
Salut,
jettes un oeil sur la fonction convert
'si elle existe sous Access)

et fais un truc du style

insert into table2
select convert('char' , convert('int', champs5), 8)

<<pas sûr que ça marche ...>>
0
Frédéric
 
Bonjour Marvinrouge,

Merci pour ton idée, mais désolé, cela ne résout pas mon problème qui est en fait pour chaque enregistrement du champ "MATRICULE" de rajouter autant de "0 (zéro)" pour atteindre une longueur de 8 caractères.

Merci quand même

Fred
0

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

Posez votre question
kubito Messages postés 320 Statut Membre 12
 
slt,

dis moi, tes matrivules de base ont tous le meme nombre de chiffre ?

_______________________________
SCV ready to go sir
0
Frédéric
 
Salut,

Le format initial du champ matricule étant "numérique", les données de ce champ n'ont pas tous la même longueur par contre la longueur du champ étant 5, il n'y a pas de valeur >= à 100000.

Merci

Fred
0
blux Messages postés 27910 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Salut,

dans ACCESS, les données sont stockées sous leur forme normale, il n'est pas possible de définir un champ numérique de 5 car, seul l'affichage qu'on peut en faire dans un formulaire peut limiter le nombre visible.

Je te conseillerais de passer ton champ en "texte".

Mais si tu ne veux pas, il te faudra passer par des requêtes intermédiaires : multiplication par 100000000, puis découpage du champ par la fonction left pour ne prendre que les n premiers...

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0