Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Champ indexe avec lettre et n° ?

6 réponses
Avatar
Domi
Bonjour à tous,

Je me lance dans Access... un vrai débutant niveau "poussin fébrile"...;o)
(je me débrouille un peu mieux sous Excel !)
J'ai un champ numéroAuto, clé primaire "CleAM"
un champ texte de 8 caractères "NumAM"
+ champs quelconques...
Je voudrais dans un formulaire qu'a chaque création d'enregistrement, le
champ NumAm soit crée automatiquement sous la forme "AM00000" avec une
indexation de +1 par rapport au dernier n° existant.
Est-ce faisable sans VBA ?
Si non quelqu'un pourrait-il me dire ou trouver un exemple simple à
télécharger que je pourrai étudier tranquillement.

Merci
Domi

6 réponses

Avatar
Laurent Jordi \(www.ezlogic.mc\)
Salut

C'est possible mais c'est juste une astuce d'affichage...

Tu tutilises un cham auto num et lorsque tu affiches la ligne tu utilises

SELECT "AM" & Format(Code,"00000), * FROM MATABLE

non ?

@+

LJ




"Domi" a écrit dans le message de
news:
Bonjour à tous,

Je me lance dans Access... un vrai débutant niveau "poussin fébrile"...;o)
(je me débrouille un peu mieux sous Excel !)
J'ai un champ numéroAuto, clé primaire "CleAM"
un champ texte de 8 caractères "NumAM"
+ champs quelconques...
Je voudrais dans un formulaire qu'a chaque création d'enregistrement, le
champ NumAm soit crée automatiquement sous la forme "AM00000" avec une
indexation de +1 par rapport au dernier n° existant.
Est-ce faisable sans VBA ?
Si non quelqu'un pourrait-il me dire ou trouver un exemple simple à
télécharger que je pourrai étudier tranquillement.

Merci
Domi




Avatar
DJP
Bonsoir,

Une suggestion pour votre question : Si votre base est
vide, il vous suffit de ne créer qu'un champ clef primaire
de type texte. Lors de la validation d'un nouvel
enregistrement, comptez simplement le nombre
d'enregistrements de votre table : MyId = DCount(...),
incrémentez de 1, transformez ce nombre en texte :
MyRef=Str (MyId) et concatenez enfin votre prefixe "AM"
avec n fois 0 et votre Str(Dcount( ...)) où n sera égal à
6-len(Myref) - Si votre base contient déjà des données,
vous avez le choix entre la tansformer (quelques requêtes
action feront l'affaire) et appliquer ce qui precède
(attention toutefois aux liaisons éventuelles)ou ajouter
un champ qui contiendra les AM0000xx ; Attention au trous
possibles en cas de undo.

Bon courage !
Avatar
Buddy
Salut
Attention aussi à la suppression des enrgistrements. DCount générera des doublons dans ce cas.

Ouala
Bye
Buddy

"DJP" a écrit dans le message de news:224901c47010$8a80eff0$
Bonsoir,

Une suggestion pour votre question : Si votre base est
vide, il vous suffit de ne créer qu'un champ clef primaire
de type texte. Lors de la validation d'un nouvel
enregistrement, comptez simplement le nombre
d'enregistrements de votre table : MyId = DCount(...),
incrémentez de 1, transformez ce nombre en texte :
MyRef=Str (MyId) et concatenez enfin votre prefixe "AM"
avec n fois 0 et votre Str(Dcount( ...)) où n sera égal à
6-len(Myref) - Si votre base contient déjà des données,
vous avez le choix entre la tansformer (quelques requêtes
action feront l'affaire) et appliquer ce qui precède
(attention toutefois aux liaisons éventuelles)ou ajouter
un champ qui contiendra les AM0000xx ; Attention au trous
possibles en cas de undo.

Bon courage !
Avatar
Domi
Oula, ça démarre fort !
Bon ben je vais essayer de déchiffrer tout ça...
Ma base est vide pour le moment puisque je n'en suis qu'au stade "voyons
comment faire..." ce qui fait que je devrais solliciter pas mal le groupe
dans un futur proche...
Je reste preneur d'un petit exemple "clé en main" si vous savez où trouver
cela ;o)
En tout cas merci beaucoup d'avoir rapidement répondu
Domi

"DJP" a écrit dans le message de
news:224901c47010$8a80eff0$
Bonsoir,

Une suggestion pour votre question : Si votre base est
vide, il vous suffit de ne créer qu'un champ clef primaire
de type texte. Lors de la validation d'un nouvel
enregistrement, comptez simplement le nombre
d'enregistrements de votre table : MyId = DCount(...),
incrémentez de 1, transformez ce nombre en texte :
MyRef=Str (MyId) et concatenez enfin votre prefixe "AM"
avec n fois 0 et votre Str(Dcount( ...)) où n sera égal à
6-len(Myref) - Si votre base contient déjà des données,
vous avez le choix entre la tansformer (quelques requêtes
action feront l'affaire) et appliquer ce qui precède
(attention toutefois aux liaisons éventuelles)ou ajouter
un champ qui contiendra les AM0000xx ; Attention au trous
possibles en cas de undo.

Bon courage !
Avatar
PatCatNat's
Bonjour,

J'ai un p'tit exemple sous acces 97 si cela t'interesse. çà vaut c'que çà
vaut, mais je m'en sert quotidiennement pour mon classement photos...
http://95560.patrice.morel.free.fr/
Rubrique informatique / Applications / Parges persos - Access -
Téléchargements

@+

Patrice


"Domi" a écrit dans le message de
news:
Bonjour à tous,

Je me lance dans Access... un vrai débutant niveau "poussin fébrile"...;o)
(je me débrouille un peu mieux sous Excel !)
J'ai un champ numéroAuto, clé primaire "CleAM"
un champ texte de 8 caractères "NumAM"
+ champs quelconques...
Je voudrais dans un formulaire qu'a chaque création d'enregistrement, le
champ NumAm soit crée automatiquement sous la forme "AM00000" avec une
indexation de +1 par rapport au dernier n° existant.
Est-ce faisable sans VBA ?
Si non quelqu'un pourrait-il me dire ou trouver un exemple simple à
télécharger que je pourrai étudier tranquillement.

Merci
Domi




Avatar
Domi
Merci beaucoup,
Sympa ton site :o)
Domi

"PatCatNat's" a écrit dans le message de
news:cdpeba$fts$
Bonjour,

J'ai un p'tit exemple sous acces 97 si cela t'interesse. çà vaut c'que çà
vaut, mais je m'en sert quotidiennement pour mon classement photos...
http://95560.patrice.morel.free.fr/
Rubrique informatique / Applications / Parges persos - Access -
Téléchargements

@+

Patrice


"Domi" a écrit dans le message de
news:
Bonjour à tous,

Je me lance dans Access... un vrai débutant niveau "poussin
fébrile"...;o)


(je me débrouille un peu mieux sous Excel !)
J'ai un champ numéroAuto, clé primaire "CleAM"
un champ texte de 8 caractères "NumAM"
+ champs quelconques...
Je voudrais dans un formulaire qu'a chaque création d'enregistrement, le
champ NumAm soit crée automatiquement sous la forme "AM00000" avec une
indexation de +1 par rapport au dernier n° existant.
Est-ce faisable sans VBA ?
Si non quelqu'un pourrait-il me dire ou trouver un exemple simple à
télécharger que je pourrai étudier tranquillement.

Merci
Domi