OVH Cloud OVH Cloud

Ajout champ automatique

5 réponses
Avatar
zarbout
Bonjour,
Je ne sais pas si ma question est réaliste mais je la pose quand même, à
vous, chers amis, de me remettre gentiment à ma place de débutant délirant.

Dans une table, j'ai 4 champs: clé primaire, nom, prénom et pointage. Ce
dernier est de type OUI/NON.
J'ai un formulaire en mode continu qui pointe vers cette table. Come vous le
devinez sans peine, il s'agitde pointer la présence des personnes en cochant
une case.
Le problème est que je souhaite que dès l'ouverture du formulaire, un
nouveau champ se rajoute à la table avec comme en-tête la date du jour (ça
m'évite de créer et d'afficher 200 champs -nb de jours d'activité- dans mon
formulaire). Bien sur il n'est question d'afficher dans le formulaire que
les 3 premiers champs (qui identifient les personnes) et le 4ème
correspondant à la date du jour (pour les pointer). Le pointage de chaque
jour est ainsi conservé dans le champ correspondant et sera traité par des
requêtes adaptées.
Voilà le problème que je n'arrive pas à résoudre.
Merci pour vos conseils, sachant, comme vous le devinez sans peine aussi,
que je ne suis pas l'as du VBA.

5 réponses

Avatar
zarbout
J'ai oublié d dire que j'ai deja utilisé en SQL la méthode ALTER TABLE, mais
je suis obligé de donner à l'avance le nom du champ alors que celui ci doit
varier chaque jour.
Que faire ?
merci




"zarbout" wrote in message
news:3f623542$0$7510$
Bonjour,
Je ne sais pas si ma question est réaliste mais je la pose quand même, à
vous, chers amis, de me remettre gentiment à ma place de débutant
délirant.


Dans une table, j'ai 4 champs: clé primaire, nom, prénom et pointage. Ce
dernier est de type OUI/NON.
J'ai un formulaire en mode continu qui pointe vers cette table. Come vous
le

devinez sans peine, il s'agitde pointer la présence des personnes en
cochant

une case.
Le problème est que je souhaite que dès l'ouverture du formulaire, un
nouveau champ se rajoute à la table avec comme en-tête la date du jour (ça
m'évite de créer et d'afficher 200 champs -nb de jours d'activité- dans
mon

formulaire). Bien sur il n'est question d'afficher dans le formulaire que
les 3 premiers champs (qui identifient les personnes) et le 4ème
correspondant à la date du jour (pour les pointer). Le pointage de chaque
jour est ainsi conservé dans le champ correspondant et sera traité par des
requêtes adaptées.
Voilà le problème que je n'arrive pas à résoudre.
Merci pour vos conseils, sachant, comme vous le devinez sans peine aussi,
que je ne suis pas l'as du VBA.







Avatar
3stone
Salut,

Si je comprends, tu veux ajouter *pour chaque jour*
de pointage, un champ dans ta table ???

C'est du Excel tu craché, cà... ;-))

Garde ta première table que tu peux d'ailleurs complèter avec
les champs qui vont bien, MAIS qui font référence à la personne.

Crée une seconde table, avec comme clé externe un champ
qui conrrespond à la clé primaire de ta première table.

Donc, si dans la table "T_Personne" tu utilise un numéro_auto
comme clé primaire, dans la seconde table ce sera un numérique
entier long !

Crée la relation entre ces deux clés, de 1 à plusieurs...

Maintenant, il reste à "empiller" les dates de pointage,
*sans* toucher à la définition de la table!



--
A+
Pierre (3stone) Access MVP
------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux mails qui concernent Access )
------------------------------------------------------





"zarbout" a écrit dans le message news: 3f6238cc$0$4902$
| J'ai oublié d dire que j'ai deja utilisé en SQL la méthode ALTER TABLE, mais
| je suis obligé de donner à l'avance le nom du champ alors que celui ci doit
| varier chaque jour.
| Que faire ?
| merci
|
|
|
|
| "zarbout" wrote in message
| news:3f623542$0$7510$
| > Bonjour,
| > Je ne sais pas si ma question est réaliste mais je la pose quand même, à
| > vous, chers amis, de me remettre gentiment à ma place de débutant
| délirant.
| >
| > Dans une table, j'ai 4 champs: clé primaire, nom, prénom et pointage. Ce
| > dernier est de type OUI/NON.
| > J'ai un formulaire en mode continu qui pointe vers cette table. Come vous
| le
| > devinez sans peine, il s'agitde pointer la présence des personnes en
| cochant
| > une case.
| > Le problème est que je souhaite que dès l'ouverture du formulaire, un
| > nouveau champ se rajoute à la table avec comme en-tête la date du jour (ça
| > m'évite de créer et d'afficher 200 champs -nb de jours d'activité- dans
| mon
| > formulaire). Bien sur il n'est question d'afficher dans le formulaire que
| > les 3 premiers champs (qui identifient les personnes) et le 4ème
| > correspondant à la date du jour (pour les pointer). Le pointage de chaque
| > jour est ainsi conservé dans le champ correspondant et sera traité par des
| > requêtes adaptées.
| > Voilà le problème que je n'arrive pas à résoudre.
| > Merci pour vos conseils, sachant, comme vous le devinez sans peine aussi,
| > que je ne suis pas l'as du VBA.
| >
| >
| >
| >
| >
|
|
Avatar
zarbout
ça a a l'air plus simple, mais comment "empiler les dates de pointage ?

Ensuite que se passe t-il dans une relation 1/n si ma 1ere table
"T_Personnes" a subi 2 requêtes (suppression et ensuite ajout) qui visent à
placer une nouvelle liste de personnes (un peux comme dans une agence
d'interim où on peut avoir affaire à des gens différents chaque jour) ? est
ce que les données de la table "T_pointage" seront toujours là (à moins de
décocher l'intérgité réféntielle peut être...)!!
merci



"3stone" wrote in message
news:e$
Salut,

Si je comprends, tu veux ajouter *pour chaque jour*
de pointage, un champ dans ta table ???

C'est du Excel tu craché, cà... ;-))

Garde ta première table que tu peux d'ailleurs complèter avec
les champs qui vont bien, MAIS qui font référence à la personne.

Crée une seconde table, avec comme clé externe un champ
qui conrrespond à la clé primaire de ta première table.

Donc, si dans la table "T_Personne" tu utilise un numéro_auto
comme clé primaire, dans la seconde table ce sera un numérique
entier long !

Crée la relation entre ces deux clés, de 1 à plusieurs...

Maintenant, il reste à "empiller" les dates de pointage,
*sans* toucher à la définition de la table!



--
A+
Pierre (3stone) Access MVP
------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux mails qui concernent Access )
------------------------------------------------------





"zarbout" a écrit dans le message news:
3f6238cc$0$4902$

| J'ai oublié d dire que j'ai deja utilisé en SQL la méthode ALTER TABLE,
mais

| je suis obligé de donner à l'avance le nom du champ alors que celui ci
doit

| varier chaque jour.
| Que faire ?
| merci
|
|
|
|
| "zarbout" wrote in message
| news:3f623542$0$7510$
| > Bonjour,
| > Je ne sais pas si ma question est réaliste mais je la pose quand même,
à

| > vous, chers amis, de me remettre gentiment à ma place de débutant
| délirant.
| >
| > Dans une table, j'ai 4 champs: clé primaire, nom, prénom et pointage.
Ce

| > dernier est de type OUI/NON.
| > J'ai un formulaire en mode continu qui pointe vers cette table. Come
vous

| le
| > devinez sans peine, il s'agitde pointer la présence des personnes en
| cochant
| > une case.
| > Le problème est que je souhaite que dès l'ouverture du formulaire, un
| > nouveau champ se rajoute à la table avec comme en-tête la date du jour
(ça

| > m'évite de créer et d'afficher 200 champs -nb de jours d'activité-
dans

| mon
| > formulaire). Bien sur il n'est question d'afficher dans le formulaire
que

| > les 3 premiers champs (qui identifient les personnes) et le 4ème
| > correspondant à la date du jour (pour les pointer). Le pointage de
chaque

| > jour est ainsi conservé dans le champ correspondant et sera traité par
des

| > requêtes adaptées.
| > Voilà le problème que je n'arrive pas à résoudre.
| > Merci pour vos conseils, sachant, comme vous le devinez sans peine
aussi,

| > que je ne suis pas l'as du VBA.
| >
| >
| >
| >
| >
|
|



Avatar
3stone
Salut,

"zarbout" a écrit:
| ça a a l'air plus simple, mais comment "empiler les dates de pointage ?

Dans la table pointage, tu ajoute simplement le "numéro" de
la personne et la date... de pointage.

Cela ce fait très simplement avec un formulaire basé sur la table
"T_Personnes" qui permet de sélectionner la personne concernée
et un sous formulaire basé sur la table "T_Pointages" qui, grâce à la
relation, ne te montrera que les pointages de la personne sélectionné
dans ton formulaire principal.
C'est dans ce sous formulaire que tu ajoutera la date de pointage.
Un simple bouton fera cela très bien.


| Ensuite que se passe t-il dans une relation 1/n si ma 1ere table
| "T_Personnes" a subi 2 requêtes (suppression et ensuite ajout) qui visent à
| placer une nouvelle liste de personnes (un peux comme dans une agence
| d'interim où on peut avoir affaire à des gens différents chaque jour) ?

Tu veux dire que tu supprime *toutes les personnes* ?
Et ensuite, tu ajoute des nouvelles ?

C'est personnes ne font qu'un bref "passage" et ensuite ne reviennent plus ?

Si elle reviennent, il faut garder le coordonnées... tu ne gère pas tout le pays,
tout de même... ;-)
Quelques milliers ou dixaines de milliers... c'est rien pour Access ;-)

Tu peux éventuellement, supprimer les pointages qui ont une certaine
ancienneté... par exemple, ceux qui ont plus de six mois...

| est ce que les données de la table "T_pointage" seront toujours là (à moins de
| décocher l'intérgité réféntielle peut être...)!!

Si tu supprime une personne, il faut également supprimer ses pointages...
sinon, cela n'a plus de sens...
En cochant "Supprimer en cascade", cela le fait tout seul...

Mais, si tu désire garder les coordonnées des personnes, même si
provisoirement elles ne viennent plus pointer, tu peux très bien
désider de ne supprimer que leurs données de pointages !

Il faudrait que tu explique un peu mieux si tu as besoin ou non
de la pérennité des données.


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Avatar
zarbout
dans l'ensemble ça me convient.
l'histoire des 2 requête (suppression et ajout) se rapporte à une
problèmatique exposée dans le Post du 08/09/03: 21h45 par "zarbout" au titre
(assez trouble par ailleurs ) de : "ajout, mise à jour ou union". La
question est bien détaillé avec les réponses des bonnes volontés du forum.
Merci



"3stone" wrote in message
news:e#
Salut,

"zarbout" a écrit:
| ça a a l'air plus simple, mais comment "empiler les dates de pointage ?

Dans la table pointage, tu ajoute simplement le "numéro" de
la personne et la date... de pointage.

Cela ce fait très simplement avec un formulaire basé sur la table
"T_Personnes" qui permet de sélectionner la personne concernée
et un sous formulaire basé sur la table "T_Pointages" qui, grâce à la
relation, ne te montrera que les pointages de la personne sélectionné
dans ton formulaire principal.
C'est dans ce sous formulaire que tu ajoutera la date de pointage.
Un simple bouton fera cela très bien.


| Ensuite que se passe t-il dans une relation 1/n si ma 1ere table
| "T_Personnes" a subi 2 requêtes (suppression et ensuite ajout) qui
visent à

| placer une nouvelle liste de personnes (un peux comme dans une agence
| d'interim où on peut avoir affaire à des gens différents chaque jour) ?

Tu veux dire que tu supprime *toutes les personnes* ?
Et ensuite, tu ajoute des nouvelles ?

C'est personnes ne font qu'un bref "passage" et ensuite ne reviennent plus
?


Si elle reviennent, il faut garder le coordonnées... tu ne gère pas tout
le pays,

tout de même... ;-)
Quelques milliers ou dixaines de milliers... c'est rien pour Access ;-)

Tu peux éventuellement, supprimer les pointages qui ont une certaine
ancienneté... par exemple, ceux qui ont plus de six mois...

| est ce que les données de la table "T_pointage" seront toujours là (à
moins de

| décocher l'intérgité réféntielle peut être...)!!

Si tu supprime une personne, il faut également supprimer ses pointages...
sinon, cela n'a plus de sens...
En cochant "Supprimer en cascade", cela le fait tout seul...

Mais, si tu désire garder les coordonnées des personnes, même si
provisoirement elles ne viennent plus pointer, tu peux très bien
désider de ne supprimer que leurs données de pointages !

Il faudrait que tu explique un peu mieux si tu as besoin ou non
de la pérennité des données.


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------