Un champ compteur qui change chaque année

Le
Kolele
Bonsoir à tous,

Soit une base avec une table "ConseilAdministration", comprenant les champs
"CléCA" (champ compteur), date, NombreDePrésents. Une seconde table
"Délibérations" comporte les champs "CléDélib" (champ compteur), "CléCA"
(côté plusieurs de la relation avec le champ de même nom de la table
précédente), "ObjetDélib", "NombreDeVotants", "NombreDeOui", etc.…
La délibération doit porter un n° unique. Jusque là j'utilisais le champ
compteur "CléCA". Mais je voudrais que le N° de délibération se remette à
zéro au 1er janvier. Donc faut que je trouve autre chose.
J'ai le même problème avec une autre table "Ordre du jour", qui comporte les
champs "PointN°", "ObjetDuPoint" et "CléCA" (côté plusieurs avec le champ de
même nom de la table "Conseil d'Administration"). Ce coup-ci, il me faut un
compteur qui se remette à zéro à chaque nouvelle réunion du Conseil (à chaque
nouvelle valeur "cléCA").
Auriez-vous une astuce ?

Bon week-end de Pentecôte ensoleillé à tous.
--
Pierre.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Kolele
Le #22157311
J'ai une piste sur ma 2ème question (numérotation des points à l'ordre du
jour des Conseils d'administration du lycée), en reprenant l'esprit d'un code
SQL que m'avait fabriqué db sur ce site, il y a quelques mois. Je rappelle le
problème :
I / Une table "Conseil d'Administration" avec un enregistrement par date de
réunion (CléCA = 1 ; DateCA" mars 2010. CléCA=2 ; DateCA = 3 juin 2010 …).
II / Une table "OrdreDuJour", avec le champ "CléOJ" champ compteur en clé
primaire, le champ "PointOJn°" de type Entier, le champ "ObjetPointOJ" type
texte et le champ "CléCA" de la table précédente comme clé externe (donc, si
je cause bien base-de-données-relationnelles, je suis du côté "plusieurs" de
la relation : 1 CA, plusieurs points à l'ordre du jour).
III / L'objectif est d'automatiser la valeur des enregistrements de
"PointOJn°", avec Remise à zéro à chaque nouvelle réunion de CA, et
incrémentation de 1 à l'infini (vite atteint avec les représentants des profs
!).
IV / solution rédigée dans mon pidgin SQL (et c'est là que j'ai besoin de
vous) :
SELECT "CléOJ", "DateCA", "ObjetPointOJ", "PointOJn°" from "OrdreDuJour"
IF SELECT MAX("PointOJn°") Est Null 'pour DateCA identique'
'Alors' "PointOJn°" = 1
'Sinon' "PointOJn°" = ([PointOJn°]-1) + 1

Je sais d'ores et déjà que je vais m'attirer des sarcasmes, mais n'oubliez
pas de m'aider après avoir bien ri !!
Bon dimanche à tous.
--
Pierre.
3stone
Le #22165101
Salut,

Kolele wrote:
Soit une base avec une table "ConseilAdministration", comprenant les
champs "CléCA" (champ compteur), date, NombreDePrésents. Une seconde
table "Délibérations" comporte les champs "CléDélib" (champ
compteur), "CléCA" (côté plusieurs de la relation avec le champ de
même nom de la table précédente), "ObjetDélib", "NombreDeVotants",
"NombreDeOui", etc.…
La délibération doit porter un n° unique. Jusque là j'utilisais le
champ compteur "CléCA". Mais je voudrais que le N° de délibération se
remette à zéro au 1er janvier. Donc faut que je trouve autre chose.
J'ai le même problème avec une autre table "Ordre du jour", qui
comporte les champs "PointN°", "ObjetDuPoint" et "CléCA" (côté
plusieurs avec le champ de même nom de la table "Conseil
d'Administration"). Ce coup-ci, il me faut un compteur qui se remette
à zéro à chaque nouvelle réunion du Conseil (à chaque nouvelle valeur
"cléCA").



Tu dis :
"Mais je voudrais que le N° de délibération se remette à
zéro au 1er janvier. Donc faut que je trouve autre chose."

Oui... mais pourquoi ?
le chammp NuméroAuto est parfait en clé primaire, n'ouble pas
qu'il te sert comme clé externe dans l'autre table.

Donc, si tu le remet à zéro au premier janvier, il ne peut plus
servir de clé primaire.

Ceci dit, pour autant que tu n'as pas plus d'un CA par date,
le champ DateCA pourrait servir de clé primaire, mais plus lourd
du coté plusieurs. Donc, ton numéroauto est parfait.

Pour la "présentation" dans un état, la numérotation "à la volée"
est un jeux d'enfant...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
3stone
Le #22165091
re,

Kolele wrote:
J'ai une piste sur ma 2ème question (numérotation des points à
l'ordre du jour des Conseils d'administration du lycée), en reprenant
l'esprit d'un code SQL que m'avait fabriqué db sur ce site, il y a
quelques mois. Je rappelle le problème :
I / Une table "Conseil d'Administration" avec un enregistrement par
date de réunion (CléCA = 1 ; DateCA" mars 2010. CléCA=2 ; DateCA > 3 juin 2010 …). II / Une table "OrdreDuJour", avec le champ "CléOJ"
champ compteur en clé primaire, le champ "PointOJn°" de type Entier,
le champ "ObjetPointOJ" type texte et le champ "CléCA" de la table
précédente comme clé externe (donc, si je cause bien
base-de-données-relationnelles, je suis du côté "plusieurs" de la
relation : 1 CA, plusieurs points à l'ordre du jour).
III / L'objectif est d'automatiser la valeur des enregistrements de
"PointOJn°", avec Remise à zéro à chaque nouvelle réunion de CA, et
incrémentation de 1 à l'infini (vite atteint avec les représentants
des profs !).



Pour ta table OrdreDuJour, si tu souhaites "numéroter" les lignes
ceci devrait suffire :

dans la Sub de l'événement "Sur activation" :

Private Sub Form_Current()
If IsNull(Me.PointOJ) Or (Me.PointOJ = 0) Then
Me.PointOJ = Nz(Me.Recordset.RecordCount, 0) + 1
End If
End Sub


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Kolele
Le #22182251
3Pierre : Pas encore eu le temps de tester la Sub mais ça me parle.
Je préfère te remecier maintenant avant que ça ne ferme.
Est-on sûr de te revoir sur les forums answers ?
Amitiés à tous.
--
Pierre.


"3stone" a écrit :

re,

Kolele wrote:
> J'ai une piste sur ma 2ème question (numérotation des points à
> l'ordre du jour des Conseils d'administration du lycée), en reprenant
> l'esprit d'un code SQL que m'avait fabriqué db sur ce site, il y a
> quelques mois. Je rappelle le problème :
> I / Une table "Conseil d'Administration" avec un enregistrement par
> date de réunion (CléCA = 1 ; DateCA" mars 2010. CléCA=2 ; DateCA > > 3 juin 2010 …). II / Une table "OrdreDuJour", avec le champ "CléOJ"
> champ compteur en clé primaire, le champ "PointOJn°" de type Entier,
> le champ "ObjetPointOJ" type texte et le champ "CléCA" de la table
> précédente comme clé externe (donc, si je cause bien
> base-de-données-relationnelles, je suis du côté "plusieurs" de la
> relation : 1 CA, plusieurs points à l'ordre du jour).
> III / L'objectif est d'automatiser la valeur des enregistrements de
> "PointOJn°", avec Remise à zéro à chaque nouvelle réunion de CA, et
> incrémentation de 1 à l'infini (vite atteint avec les représentants
> des profs !).

Pour ta table OrdreDuJour, si tu souhaites "numéroter" les lignes
ceci devrait suffire :

dans la Sub de l'événement "Sur activation" :

Private Sub Form_Current()
If IsNull(Me.PointOJ) Or (Me.PointOJ = 0) Then
Me.PointOJ = Nz(Me.Recordset.RecordCount, 0) + 1
End If
End Sub


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)

.

3stone
Le #22182401
Salut,

Kolele wrote:
3Pierre : Pas encore eu le temps de tester la Sub mais ça me parle.
Je préfère te remecier maintenant avant que ça ne ferme.



et d'après le dernier message, c'est pour cette fin de mois !


Est-on sûr de te revoir sur les forums answers ?



Pas sûr...
mais il reste de toute façon mon site, en cas où ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Publicité
Poster une réponse
Anonyme