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

Création d'une base de gestion

20 réponses
Avatar
Chris
Bonjour
Je réfléchis à la création d'une nouvelle base pour la gestion d'une
association sportive
J'aurais une table contenant les adhérents.
Chaque adhérent achète une carte (table "Carte") de 10h où sont pointés
leurs activités (3 types d'activités possibles)
pour chaque heure pointée, il y a la date et le type d'activité (donc les
champs suivants:
ID adhérent date1 à date10 activité1 à activité10 dans la table carte)
jusque là pas de problème, pour un pointage manuel.
Mais la personne chargée de la gestion doit remplir un formulaire "cours"
qui contient jusqu'à 30 élèves, et l'on aimerait
qu'une fois ce formulaire rempli, les dates s'ajoutent sur les cartes des
élèves (et si un élève a atteint la fin de sa carte,
on lui en recrée une autre automatiquement)
Sur cela on rajoute des indépendants qui ne sont pas pointés sur des cartes
(Nom="INDEPENDANT")
Comment serait-il possible de faire pour pointer automatiquement (ou en
cliquant sur un bouton) les activités sur les cartes?
ou comment contourner le problème pour arriver au même résultat?
Merci

10 réponses

1 2
Avatar
Chris
Re
peut-être une piste
Mon champ "ID Carte" dans la table ""tbl Carte" est au format NuméroAuto,
alors peut-être qu'il n'aime pas les additions?
......

"Chris" a écrit dans le message de news:

Bonjour
Je réfléchis à la création d'une nouvelle base pour la gestion d'une
association sportive
J'aurais une table contenant les adhérents.
Chaque adhérent achète une carte (table "Carte") de 10h où sont pointés
leurs activités (3 types d'activités possibles)
pour chaque heure pointée, il y a la date et le type d'activité (donc les
champs suivants:
ID adhérent date1 à date10 activité1 à activité10 dans la table carte)
jusque là pas de problème, pour un pointage manuel.
Mais la personne chargée de la gestion doit remplir un formulaire "cours"
qui contient jusqu'à 30 élèves, et l'on aimerait
qu'une fois ce formulaire rempli, les dates s'ajoutent sur les cartes des
élèves (et si un élève a atteint la fin de sa carte,
on lui en recrée une autre automatiquement)
Sur cela on rajoute des indépendants qui ne sont pas pointés sur des
cartes (Nom="INDEPENDANT")
Comment serait-il possible de faire pour pointer automatiquement (ou en
cliquant sur un bouton) les activités sur les cartes?
ou comment contourner le problème pour arriver au même résultat?
Merci




Avatar
Chris
Bonjour
Presonne n'aurait une petite idée pour ce problème?
Mon champ "ID Carte" dans la table ""tbl Carte" est au format NuméroAuto,
alors peut-être qu'il n'aime pas les additions?
......
Merci
"Chris" a écrit dans le message de news:

Re
Bon j'ai résolu mon problème de numéro de carte manquante, mais l'ajout
d'un nouveau numéro de carte si la précédente est pleine a fonctionné 1
fois, j'ai supprimé des leçons, la nouvelle carte, et réessayé la manip
plusieurs fois, et depuis les leçons sont toujours ajoutées dans la même
carte
que faire?
Merci
"Chris" a écrit dans le message de news:

Ok
je vais voir ça, (pitit sushi c'est que je n'ai pas le numéro de carte
dans mon formulaire, mais j'ai du l'oublier)
je vous tiens au courant
Merci encore


Chris

"ze Titi" a écrit dans le message de
news:
Hello Chris !

En fait, il y a juste une erreur de compréhension du critère:

If DCount("*", "tbl CarteActivites", "ID=" &
leContrôleDuFormulaireContenantLeNumeroDeCarte) < 10 Then
nouveauNuméroCarte = leContrôleDuFormulaireContenantLeNumeroDeCarte
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If


En ce jour mémorable du mardi 27/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour
j'ai réussi à faire mon formulaire de saisie "brut", par contre j'ai un
petit
soucis avec ceci :
Dans du VBA, pour vérifier si tu dois créer une nouvelle carte ou
utiliser
une existante pour créer la nouvelle activité:

If DCount("*","tblActivitésCarte","Identifiant=" & numéroCarte)<10 Then
nouveauNuméroCarte=numéroCarte
Else
nouveauNuméroCarte=DMax("Identifiant","tblCartes")+1 'Crée un nouvel
identifiant de carte
End If



voici le détail de mes tables :
tbl Carte (ID, ID Adherent, Payée (Oui/non), Date)
tbl CarteActivites (ID, ID Carte, ID Activité, Date,ID Adherent)

voici le code que j'ai modifié par rapport à celui proposé :
If DCount("*", "tbl CarteActivites", "ID=" & "ID Carte") < 10 Then
nouveauNuméroCarte = "ID Carte"
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If
et voilà le problème que je rencontre, dès que je clique sur mon
bouton, j'ai
ceci:
"Erreur d'execution'3075':
Erreur de synthaxe(operateur absent) dans l'expression 'ID=ID Carte'."
Où me suis-je trompé?
Merci beaucoup



"Chris" a écrit dans le message de news:

Merci
encore une question, si possible.

Comment me conseillez-vous de faire pour créer mon formulaire de
saisie
J'explique ce que je souhaite :
Un formulaire basé sur une requète (elle même basée sur la table tbl
ActivitésDetail);
où je saisis une seule fois :
La date, l'heure, l'ID Moniteur, L'ID Activite, le Niveau, pointée o/n
et où j'ajoute un par un l'ID Adhérent, l'ID Cheval
j'ai fait un formulaire basé sur la requète rqt ActivitésDetail, mais
dès
que je change de Cavalier, la date, l'heure,et toutes les valeurs que
je ne
souhaite qu'une fois n'apparaissent plus, et c'est normal, c'est un
enregistrement différent à chaque fois, mais je cherche le moyen de le
faire, après, normalement je ne devrait plus vous ennuyer, faire des
formulaires, des requètes basiques, et autres j'y arrive (tant bien
que
mal)
Merci

chris




"ze Titi" a écrit dans le message de
news:
On progresse mais il reste des zones à problèmes...

Les activités des adhérents seront enregistrées dans la table
tblActivitésCarte. Toutes les informations sur ces activités seront
enregistrées dans cette table (donc heure, date, IdMoniteur, Niveau,
IdCheval). Cette table sera la table de travail. Tous tes
regroupements
partiront de là.

Concernant le numéro auto, aucun problème...

De façon générale, dans toute base de données, les regroupements ne
se
font pas dans les tables mais dans les requêtes, ta structure doit
être la
plus générale possible afin d'être toujours utilisable en cas de
modification de fonctionnement de tes activités.
Les spécificités sont gérées dans les formulaire et les requêtes.

Bonne continuation !

En ce jour mémorable du lundi 26/02/2007, tu as entrepris la lourde
tâche
de taper sur ton clavier :
Re;

ça se clarifie un peu,
La table tblActivitésCarte me permet de stocker tous les
enregistrements
de toutes mes cartes.
La table tblCartes me permettra d'aller chercher les activités
faites
dans la carte tblActivitésCarte.

En ce qui concerne la table tblActivités, je dois stocker mes types
d'activités, je suppose, donc j'ai 4 types d'activités : Ballades,
Reprises, Concours, Horse-ball
donc dans ma table tblActivités j'aurais 4 enregistrements si j'ai
bien
tout compris.
et ensuite je crée une table tblActivitésDetail qui me permet de
stocker
toutes les activités (Identifiant, IdActivité,Date,ID
moniteur,Niveau, ,
IDadhérent,ID cheval, heure, pointée(O/N))
Dois-je mettre IDadhérent1 à IDadhérent15 si j'ai 15 cavaliers ou
alors
est-ce mieux d'avoir 1 enregistrement/adhérent dans cette table,
sachant
qu'une reprise compte au max 15 cavaliers, une ballade 30 cavaliers,
une
concours beaucoup de cavaliers, et horse-ball 14 cavaliers?

si j'ai bien suivi ton raisonnement, j'ai un enregistrement/cavalier
et
ainsi je les regroupes par identifiants après
Autre question, pour les champs identifiants des différentes tables,
j'ai
défini le format en NuméroAuto, ai-je bien fait?

Cela ne sera surement pas la dernière
Merci
Chris


"ze Titi" a écrit dans le message
de
news:
Si tu places un boolean dans ta table Cartes, tu résoudras le
problème
de la vérification de paiement de la dite carte.

D'après moi, ta base devrait avoir une structure du type:

tblAdhérents (Identifiant, Nom, Prénom, etc...)
tblActivités (Identifiant, Nom, etc...)
tblCartes (Identifiant, IdAdhérent, Payée (Oui/non), etc...)
tblActivitésCarte (Identifiant, IdCarte, IdActivité, Date)

Pour compter le nombre d'activités sur une carte, une requête
suffit:

SELECT COUNT(*) FROM tblActivitésCate WHERE
Identifiant=leNuméroDeCarte

Dans du VBA, pour vérifier si tu dois créer une nouvelle carte ou
utiliser une existante pour créer la nouvelle activité:

If DCount("*","tblActivitésCarte","Identifiant=" & numéroCarte)<10
Then
nouveauNuméroCarte=numéroCarte
Else
nouveauNuméroCarte=DMax("Identifiant","tblCartes")+1 'Crée un
nouvel
identifiant de carte
End If

Ce code va vérifier que, pour le numéro de carte "numéroCarte", il
existe déjà 10 activités ou non
Si la carte a déjà 10 activités enregistrées, je crée un nouvel
identifiant sinon j'utilise le numéro "NuméroCarte"

Plus clair comme ça ?

En ce jour mémorable du lundi 26/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Salut
D'abord, merci d'avoir répondu aussi vite

La base est encore à l'état de création, donc pour la structure,
ce
n'est pas
un problème de la modifier, c'est justement pour cela que j'ai
posté
ici
c'était une première ébauche
Ce que je veux faire :
Les cartes sont des cartes de 10h prépayées, donc nous pointons
manuellement
chaque cours pour chaque adhérent sur chaque carte de 10h
tout ceci est sur papier, je veux "informatiser" tout cela, donc
je
n'en suis
qu'au stade reflexion

Il me faut une table adhérents avec toutes leurs infos
je remplis un formulaire activité1 où je choisis par des zones de
listes les
noms des adhérents (30 max par cours), même principe pour les
activités
2 et
3
ensuite j'aimerais que lorsque je "clique" sur un bouton, les
cartes
des 10h
se remplissent automatiquement avec la date et le type d'activité
Comme cela, si je recherche un adhérent, je peux visualiser ses
cartes
(anciennes ou en cours), savoir si cette carte a été payée ou non,
et
dans le
cas où la
personne a dépassé ses 10h, on lui recrée une nouvelle carte (non
payée)
Donc si je prends l'exemple d'une personne qui entamme son dernier
cours de
sa carte(payée) et qu'il en fait un autre, une nouvelle carte est
créée
et
elle sera en statut non payé
(on n'arrète pas les cours pour une carte non payée, on s'arrange
pour
que la
personne paye le plus rapidement possible).

Ce que j'avais fait, (mais ce n'est pas la bonne solution) c'était
d'avoir
une table "Carte" comportant des champs date1...à date10 et
activité1 à
activité10
et je voulais rajouter au fur et à mesure dedans, mais ajouter une
date
dans
une table mais sans savoir quel est le champ où ajouter.....
si c'est la deuxième date à pointer, comment dire à la requète "si
date1 est
remplie ajoute la date à la suivante"

Difficile, le principe de pointage par cartes doit continuer, mais
je
ne vois
pas trop comment gérer ceci, donc si quelqu'un peut m'éclairer
j'espère avoir été clair dans mes explications

Merci de votre aide

"ze Titi" a écrit dans le
message de
news:

Hello Chris !

Je ne suis pas absolument persuadé de la justesse de tes tables,
au
moins
pour la table cartes...
Pour la table adhérents, d'accord... Concernant la table
"Cartes",
déjà
moins... Comment feras-tu le jour où tu passeras à une carte à 12
dates
(par exemple) ?
Personnellement, je ferais une table cartes comportant 2 champs:
identifiant, IdAdhérent
et je rajouterais une table "Activités_carte" comportant 4
champs:
Identifiant, IdCarte, Date, IdActivité

Mais ça n'est que mon avis...

Concernant ton problème, je ne le comprends pas bien... A partir
du
moment
où tu vas aller renseigner ton formulaire cours, les cartes vont
se
remplir
automatiquement... A moins que ton formulaire cours ne renseigne
pas
ta
table Cartes mais une autre... Mais dans ce cas, tu as un gros
problème de
structure de ta base...

Eclaire-nous !

En ce jour mémorable du vendredi 23/02/2007, tu as entrepris la
lourde
tâche de taper sur ton clavier :
Bonjour
Je réfléchis à la création d'une nouvelle base pour la gestion
d'une
association sportive
J'aurais une table contenant les adhérents.
Chaque adhérent achète une carte (table "Carte") de 10h où sont
pointés
leurs activités (3 types d'activités possibles)
pour chaque heure pointée, il y a la date et le type d'activité
(donc
les
champs suivants:
ID adhérent date1 à date10 activité1 à activité10 dans la table
carte)
jusque là pas de problème, pour un pointage manuel.
Mais la personne chargée de la gestion doit remplir un
formulaire
"cours"
qui contient jusqu'à 30 élèves, et l'on aimerait
qu'une fois ce formulaire rempli, les dates s'ajoutent sur les
cartes
des
élèves (et si un élève a atteint la fin de sa carte,
on lui en recrée une autre automatiquement)
Sur cela on rajoute des indépendants qui ne sont pas pointés sur
des
cartes (Nom="INDEPENDANT")
Comment serait-il possible de faire pour pointer automatiquement
(ou
en
cliquant sur un bouton) les activités sur les cartes?
ou comment contourner le problème pour arriver au même résultat?
Merci


-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info








--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info




















Avatar
ze Titi
Salut Chris !

J'utilise cette technique régulièrement dans mes applications et ça
fonctionne à merveille...
Quel est le code utilisé ?

En ce jour exceptionnel du mercredi 07/03/2007, tu nous as très
généreusement gratifié du message suivant:

Bonjour
Presonne n'aurait une petite idée pour ce problème?
Mon champ "ID Carte" dans la table ""tbl Carte" est au format NuméroAuto,
alors peut-être qu'il n'aime pas les additions?
......
Merci
"Chris" a écrit dans le message de news:

Re
Bon j'ai résolu mon problème de numéro de carte manquante, mais l'ajout
d'un nouveau numéro de carte si la précédente est pleine a fonctionné 1
fois, j'ai supprimé des leçons, la nouvelle carte, et réessayé la manip
plusieurs fois, et depuis les leçons sont toujours ajoutées dans la même
carte
que faire?
Merci
"Chris" a écrit dans le message de news:

Ok
je vais voir ça, (pitit sushi c'est que je n'ai pas le numéro de carte
dans mon formulaire, mais j'ai du l'oublier)
je vous tiens au courant
Merci encore


Chris

"ze Titi" a écrit dans le message de
news:
Hello Chris !

En fait, il y a juste une erreur de compréhension du critère:

If DCount("*", "tbl CarteActivites", "ID=" &
leContrôleDuFormulaireContenantLeNumeroDeCarte) < 10 Then
nouveauNuméroCarte = leContrôleDuFormulaireContenantLeNumeroDeCarte
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If


En ce jour mémorable du mardi 27/02/2007, tu as entrepris la lourde tâche
de taper sur ton clavier :
Bonjour
j'ai réussi à faire mon formulaire de saisie "brut", par contre j'ai un
petit
soucis avec ceci :
Dans du VBA, pour vérifier si tu dois créer une nouvelle carte ou
utiliser
une existante pour créer la nouvelle activité:

If DCount("*","tblActivitésCarte","Identifiant=" & numéroCarte)<10 Then
nouveauNuméroCarte=numéroCarte
Else
nouveauNuméroCarte=DMax("Identifiant","tblCartes")+1 'Crée un nouvel
identifiant de carte
End If



voici le détail de mes tables :
tbl Carte (ID, ID Adherent, Payée (Oui/non), Date)
tbl CarteActivites (ID, ID Carte, ID Activité, Date,ID Adherent)

voici le code que j'ai modifié par rapport à celui proposé :
If DCount("*", "tbl CarteActivites", "ID=" & "ID Carte") < 10 Then
nouveauNuméroCarte = "ID Carte"
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If
et voilà le problème que je rencontre, dès que je clique sur mon bouton,
j'ai
ceci:
"Erreur d'execution'3075':
Erreur de synthaxe(operateur absent) dans l'expression 'ID=ID Carte'."
Où me suis-je trompé?
Merci beaucoup



"Chris" a écrit dans le message de news:

Merci
encore une question, si possible.

Comment me conseillez-vous de faire pour créer mon formulaire de saisie
J'explique ce que je souhaite :
Un formulaire basé sur une requète (elle même basée sur la table tbl
ActivitésDetail);
où je saisis une seule fois :
La date, l'heure, l'ID Moniteur, L'ID Activite, le Niveau, pointée o/n
et où j'ajoute un par un l'ID Adhérent, l'ID Cheval
j'ai fait un formulaire basé sur la requète rqt ActivitésDetail, mais
dès
que je change de Cavalier, la date, l'heure,et toutes les valeurs que
je ne
souhaite qu'une fois n'apparaissent plus, et c'est normal, c'est un
enregistrement différent à chaque fois, mais je cherche le moyen de le
faire, après, normalement je ne devrait plus vous ennuyer, faire des
formulaires, des requètes basiques, et autres j'y arrive (tant bien que
mal)
Merci

chris




"ze Titi" a écrit dans le message de
news:
On progresse mais il reste des zones à problèmes...

Les activités des adhérents seront enregistrées dans la table
tblActivitésCarte. Toutes les informations sur ces activités seront
enregistrées dans cette table (donc heure, date, IdMoniteur, Niveau,
IdCheval). Cette table sera la table de travail. Tous tes
regroupements
partiront de là.

Concernant le numéro auto, aucun problème...

De façon générale, dans toute base de données, les regroupements ne se
font pas dans les tables mais dans les requêtes, ta structure doit
être la
plus générale possible afin d'être toujours utilisable en cas de
modification de fonctionnement de tes activités.
Les spécificités sont gérées dans les formulaire et les requêtes.

Bonne continuation !

En ce jour mémorable du lundi 26/02/2007, tu as entrepris la lourde
tâche
de taper sur ton clavier :
Re;

ça se clarifie un peu,
La table tblActivitésCarte me permet de stocker tous les
enregistrements
de toutes mes cartes.
La table tblCartes me permettra d'aller chercher les activités faites
dans la carte tblActivitésCarte.

En ce qui concerne la table tblActivités, je dois stocker mes types
d'activités, je suppose, donc j'ai 4 types d'activités : Ballades,
Reprises, Concours, Horse-ball
donc dans ma table tblActivités j'aurais 4 enregistrements si j'ai
bien
tout compris.
et ensuite je crée une table tblActivitésDetail qui me permet de
stocker
toutes les activités (Identifiant, IdActivité,Date,ID
moniteur,Niveau, ,
IDadhérent,ID cheval, heure, pointée(O/N))
Dois-je mettre IDadhérent1 à IDadhérent15 si j'ai 15 cavaliers ou
alors
est-ce mieux d'avoir 1 enregistrement/adhérent dans cette table,
sachant
qu'une reprise compte au max 15 cavaliers, une ballade 30 cavaliers,
une
concours beaucoup de cavaliers, et horse-ball 14 cavaliers?

si j'ai bien suivi ton raisonnement, j'ai un enregistrement/cavalier
et
ainsi je les regroupes par identifiants après
Autre question, pour les champs identifiants des différentes tables,
j'ai
défini le format en NuméroAuto, ai-je bien fait?

Cela ne sera surement pas la dernière
Merci
Chris


"ze Titi" a écrit dans le message
de
news:
Si tu places un boolean dans ta table Cartes, tu résoudras le
problème
de la vérification de paiement de la dite carte.

D'après moi, ta base devrait avoir une structure du type:

tblAdhérents (Identifiant, Nom, Prénom, etc...)
tblActivités (Identifiant, Nom, etc...)
tblCartes (Identifiant, IdAdhérent, Payée (Oui/non), etc...)
tblActivitésCarte (Identifiant, IdCarte, IdActivité, Date)

Pour compter le nombre d'activités sur une carte, une requête
suffit:

SELECT COUNT(*) FROM tblActivitésCate WHERE
Identifiant=leNuméroDeCarte

Dans du VBA, pour vérifier si tu dois créer une nouvelle carte ou
utiliser une existante pour créer la nouvelle activité:

If DCount("*","tblActivitésCarte","Identifiant=" & numéroCarte)<10
Then
nouveauNuméroCarte=numéroCarte
Else
nouveauNuméroCarte=DMax("Identifiant","tblCartes")+1 'Crée un
nouvel
identifiant de carte
End If

Ce code va vérifier que, pour le numéro de carte "numéroCarte", il
existe déjà 10 activités ou non
Si la carte a déjà 10 activités enregistrées, je crée un nouvel
identifiant sinon j'utilise le numéro "NuméroCarte"

Plus clair comme ça ?

En ce jour mémorable du lundi 26/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Salut
D'abord, merci d'avoir répondu aussi vite

La base est encore à l'état de création, donc pour la structure, ce
n'est pas
un problème de la modifier, c'est justement pour cela que j'ai
posté
ici
c'était une première ébauche
Ce que je veux faire :
Les cartes sont des cartes de 10h prépayées, donc nous pointons
manuellement
chaque cours pour chaque adhérent sur chaque carte de 10h
tout ceci est sur papier, je veux "informatiser" tout cela, donc je
n'en suis
qu'au stade reflexion

Il me faut une table adhérents avec toutes leurs infos
je remplis un formulaire activité1 où je choisis par des zones de
listes les
noms des adhérents (30 max par cours), même principe pour les
activités
2 et
3
ensuite j'aimerais que lorsque je "clique" sur un bouton, les
cartes
des 10h
se remplissent automatiquement avec la date et le type d'activité
Comme cela, si je recherche un adhérent, je peux visualiser ses
cartes
(anciennes ou en cours), savoir si cette carte a été payée ou non,
et
dans le
cas où la
personne a dépassé ses 10h, on lui recrée une nouvelle carte (non
payée)
Donc si je prends l'exemple d'une personne qui entamme son dernier
cours de
sa carte(payée) et qu'il en fait un autre, une nouvelle carte est
créée
et
elle sera en statut non payé
(on n'arrète pas les cours pour une carte non payée, on s'arrange
pour
que la
personne paye le plus rapidement possible).

Ce que j'avais fait, (mais ce n'est pas la bonne solution) c'était
d'avoir
une table "Carte" comportant des champs date1...à date10 et
activité1 à
activité10
et je voulais rajouter au fur et à mesure dedans, mais ajouter une
date
dans
une table mais sans savoir quel est le champ où ajouter.....
si c'est la deuxième date à pointer, comment dire à la requète "si
date1 est
remplie ajoute la date à la suivante"

Difficile, le principe de pointage par cartes doit continuer, mais
je
ne vois
pas trop comment gérer ceci, donc si quelqu'un peut m'éclairer
j'espère avoir été clair dans mes explications

Merci de votre aide

"ze Titi" a écrit dans le message
de
news:

Hello Chris !

Je ne suis pas absolument persuadé de la justesse de tes tables,
au
moins
pour la table cartes...
Pour la table adhérents, d'accord... Concernant la table "Cartes",
déjà
moins... Comment feras-tu le jour où tu passeras à une carte à 12
dates
(par exemple) ?
Personnellement, je ferais une table cartes comportant 2 champs:
identifiant, IdAdhérent
et je rajouterais une table "Activités_carte" comportant 4 champs:
Identifiant, IdCarte, Date, IdActivité

Mais ça n'est que mon avis...

Concernant ton problème, je ne le comprends pas bien... A partir
du
moment
où tu vas aller renseigner ton formulaire cours, les cartes vont
se
remplir
automatiquement... A moins que ton formulaire cours ne renseigne
pas
ta
table Cartes mais une autre... Mais dans ce cas, tu as un gros
problème de
structure de ta base...

Eclaire-nous !

En ce jour mémorable du vendredi 23/02/2007, tu as entrepris la
lourde
tâche de taper sur ton clavier :
Bonjour
Je réfléchis à la création d'une nouvelle base pour la gestion
d'une
association sportive
J'aurais une table contenant les adhérents.
Chaque adhérent achète une carte (table "Carte") de 10h où sont
pointés
leurs activités (3 types d'activités possibles)
pour chaque heure pointée, il y a la date et le type d'activité
(donc
les
champs suivants:
ID adhérent date1 à date10 activité1 à activité10 dans la table
carte)
jusque là pas de problème, pour un pointage manuel.
Mais la personne chargée de la gestion doit remplir un formulaire
"cours"
qui contient jusqu'à 30 élèves, et l'on aimerait
qu'une fois ce formulaire rempli, les dates s'ajoutent sur les
cartes
des
élèves (et si un élève a atteint la fin de sa carte,
on lui en recrée une autre automatiquement)
Sur cela on rajoute des indépendants qui ne sont pas pointés sur
des
cartes (Nom="INDEPENDANT")
Comment serait-il possible de faire pour pointer automatiquement
(ou
en
cliquant sur un bouton) les activités sur les cartes?
ou comment contourner le problème pour arriver au même résultat?
Merci


-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info








-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info











--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info












Avatar
Chris
re
Voici mon code
Private Sub Commande19_Click()
If DCount("*", "tbl CarteActivites", "ID=" & [ID Carte]) < 10 Then
nouveauNuméroCarte = [ID Carte]
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel identifiant
de carte
End If
DoCmd.OpenQuery "rqt ajout ActivitesDetail Carte", , acEdit
DoCmd.OpenQuery "rqt maj ActivitesDetail regroupement pointee", , acEdit
DoCmd.Save
End Sub


Merci

je peux éventuellement envoyer ma base pour voir ce qui cloche

Merci
"ze Titi" a écrit dans le message de news:

Salut Chris !

J'utilise cette technique régulièrement dans mes applications et ça
fonctionne à merveille...
Quel est le code utilisé ?

En ce jour exceptionnel du mercredi 07/03/2007, tu nous as très
généreusement gratifié du message suivant:

Bonjour
Presonne n'aurait une petite idée pour ce problème?
Mon champ "ID Carte" dans la table ""tbl Carte" est au format NuméroAuto,
alors peut-être qu'il n'aime pas les additions?
......
Merci
"Chris" a écrit dans le message de news:

Re
Bon j'ai résolu mon problème de numéro de carte manquante, mais l'ajout
d'un nouveau numéro de carte si la précédente est pleine a fonctionné 1
fois, j'ai supprimé des leçons, la nouvelle carte, et réessayé la manip
plusieurs fois, et depuis les leçons sont toujours ajoutées dans la même
carte
que faire?
Merci
"Chris" a écrit dans le message de news:

Ok
je vais voir ça, (pitit sushi c'est que je n'ai pas le numéro de carte
dans mon formulaire, mais j'ai du l'oublier)
je vous tiens au courant
Merci encore


Chris

"ze Titi" a écrit dans le message de
news:
Hello Chris !

En fait, il y a juste une erreur de compréhension du critère:

If DCount("*", "tbl CarteActivites", "ID=" &
leContrôleDuFormulaireContenantLeNumeroDeCarte) < 10 Then
nouveauNuméroCarte = leContrôleDuFormulaireContenantLeNumeroDeCarte
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If


En ce jour mémorable du mardi 27/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour
j'ai réussi à faire mon formulaire de saisie "brut", par contre j'ai
un petit
soucis avec ceci :
Dans du VBA, pour vérifier si tu dois créer une nouvelle carte ou
utiliser
une existante pour créer la nouvelle activité:

If DCount("*","tblActivitésCarte","Identifiant=" & numéroCarte)<10
Then
nouveauNuméroCarte=numéroCarte
Else
nouveauNuméroCarte=DMax("Identifiant","tblCartes")+1 'Crée un nouvel
identifiant de carte
End If



voici le détail de mes tables :
tbl Carte (ID, ID Adherent, Payée (Oui/non), Date)
tbl CarteActivites (ID, ID Carte, ID Activité, Date,ID Adherent)

voici le code que j'ai modifié par rapport à celui proposé :
If DCount("*", "tbl CarteActivites", "ID=" & "ID Carte") < 10 Then
nouveauNuméroCarte = "ID Carte"
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If
et voilà le problème que je rencontre, dès que je clique sur mon
bouton, j'ai
ceci:
"Erreur d'execution'3075':
Erreur de synthaxe(operateur absent) dans l'expression 'ID=ID
Carte'."
Où me suis-je trompé?
Merci beaucoup



"Chris" a écrit dans le message de news:

Merci
encore une question, si possible.

Comment me conseillez-vous de faire pour créer mon formulaire de
saisie
J'explique ce que je souhaite :
Un formulaire basé sur une requète (elle même basée sur la table tbl
ActivitésDetail);
où je saisis une seule fois :
La date, l'heure, l'ID Moniteur, L'ID Activite, le Niveau, pointée
o/n
et où j'ajoute un par un l'ID Adhérent, l'ID Cheval
j'ai fait un formulaire basé sur la requète rqt ActivitésDetail,
mais dès
que je change de Cavalier, la date, l'heure,et toutes les valeurs
que je ne
souhaite qu'une fois n'apparaissent plus, et c'est normal, c'est un
enregistrement différent à chaque fois, mais je cherche le moyen de
le
faire, après, normalement je ne devrait plus vous ennuyer, faire des
formulaires, des requètes basiques, et autres j'y arrive (tant bien
que
mal)
Merci

chris




"ze Titi" a écrit dans le message
de
news:
On progresse mais il reste des zones à problèmes...

Les activités des adhérents seront enregistrées dans la table
tblActivitésCarte. Toutes les informations sur ces activités seront
enregistrées dans cette table (donc heure, date, IdMoniteur,
Niveau,
IdCheval). Cette table sera la table de travail. Tous tes
regroupements
partiront de là.

Concernant le numéro auto, aucun problème...

De façon générale, dans toute base de données, les regroupements ne
se
font pas dans les tables mais dans les requêtes, ta structure doit
être la
plus générale possible afin d'être toujours utilisable en cas de
modification de fonctionnement de tes activités.
Les spécificités sont gérées dans les formulaire et les requêtes.

Bonne continuation !

En ce jour mémorable du lundi 26/02/2007, tu as entrepris la lourde
tâche
de taper sur ton clavier :
Re;

ça se clarifie un peu,
La table tblActivitésCarte me permet de stocker tous les
enregistrements
de toutes mes cartes.
La table tblCartes me permettra d'aller chercher les activités
faites
dans la carte tblActivitésCarte.

En ce qui concerne la table tblActivités, je dois stocker mes
types
d'activités, je suppose, donc j'ai 4 types d'activités : Ballades,
Reprises, Concours, Horse-ball
donc dans ma table tblActivités j'aurais 4 enregistrements si j'ai
bien
tout compris.
et ensuite je crée une table tblActivitésDetail qui me permet de
stocker
toutes les activités (Identifiant, IdActivité,Date,ID
moniteur,Niveau, ,
IDadhérent,ID cheval, heure, pointée(O/N))
Dois-je mettre IDadhérent1 à IDadhérent15 si j'ai 15 cavaliers ou
alors
est-ce mieux d'avoir 1 enregistrement/adhérent dans cette table,
sachant
qu'une reprise compte au max 15 cavaliers, une ballade 30
cavaliers, une
concours beaucoup de cavaliers, et horse-ball 14 cavaliers?

si j'ai bien suivi ton raisonnement, j'ai un
enregistrement/cavalier et
ainsi je les regroupes par identifiants après
Autre question, pour les champs identifiants des différentes
tables, j'ai
défini le format en NuméroAuto, ai-je bien fait?

Cela ne sera surement pas la dernière
Merci
Chris


"ze Titi" a écrit dans le
message de
news:
Si tu places un boolean dans ta table Cartes, tu résoudras le
problème
de la vérification de paiement de la dite carte.

D'après moi, ta base devrait avoir une structure du type:

tblAdhérents (Identifiant, Nom, Prénom, etc...)
tblActivités (Identifiant, Nom, etc...)
tblCartes (Identifiant, IdAdhérent, Payée (Oui/non), etc...)
tblActivitésCarte (Identifiant, IdCarte, IdActivité, Date)

Pour compter le nombre d'activités sur une carte, une requête
suffit:

SELECT COUNT(*) FROM tblActivitésCate WHERE
Identifiant=leNuméroDeCarte

Dans du VBA, pour vérifier si tu dois créer une nouvelle carte ou
utiliser une existante pour créer la nouvelle activité:

If DCount("*","tblActivitésCarte","Identifiant=" &
numéroCarte)<10 Then
nouveauNuméroCarte=numéroCarte
Else
nouveauNuméroCarte=DMax("Identifiant","tblCartes")+1 'Crée un
nouvel
identifiant de carte
End If

Ce code va vérifier que, pour le numéro de carte "numéroCarte",
il
existe déjà 10 activités ou non
Si la carte a déjà 10 activités enregistrées, je crée un nouvel
identifiant sinon j'utilise le numéro "NuméroCarte"

Plus clair comme ça ?

En ce jour mémorable du lundi 26/02/2007, tu as entrepris la
lourde
tâche de taper sur ton clavier :
Salut
D'abord, merci d'avoir répondu aussi vite

La base est encore à l'état de création, donc pour la structure,
ce
n'est pas
un problème de la modifier, c'est justement pour cela que j'ai
posté
ici
c'était une première ébauche
Ce que je veux faire :
Les cartes sont des cartes de 10h prépayées, donc nous pointons
manuellement
chaque cours pour chaque adhérent sur chaque carte de 10h
tout ceci est sur papier, je veux "informatiser" tout cela, donc
je
n'en suis
qu'au stade reflexion

Il me faut une table adhérents avec toutes leurs infos
je remplis un formulaire activité1 où je choisis par des zones
de
listes les
noms des adhérents (30 max par cours), même principe pour les
activités
2 et
3
ensuite j'aimerais que lorsque je "clique" sur un bouton, les
cartes
des 10h
se remplissent automatiquement avec la date et le type
d'activité
Comme cela, si je recherche un adhérent, je peux visualiser ses
cartes
(anciennes ou en cours), savoir si cette carte a été payée ou
non, et
dans le
cas où la
personne a dépassé ses 10h, on lui recrée une nouvelle carte
(non
payée)
Donc si je prends l'exemple d'une personne qui entamme son
dernier
cours de
sa carte(payée) et qu'il en fait un autre, une nouvelle carte
est créée
et
elle sera en statut non payé
(on n'arrète pas les cours pour une carte non payée, on
s'arrange pour
que la
personne paye le plus rapidement possible).

Ce que j'avais fait, (mais ce n'est pas la bonne solution)
c'était
d'avoir
une table "Carte" comportant des champs date1...à date10 et
activité1 à
activité10
et je voulais rajouter au fur et à mesure dedans, mais ajouter
une date
dans
une table mais sans savoir quel est le champ où ajouter.....
si c'est la deuxième date à pointer, comment dire à la requète
"si
date1 est
remplie ajoute la date à la suivante"

Difficile, le principe de pointage par cartes doit continuer,
mais je
ne vois
pas trop comment gérer ceci, donc si quelqu'un peut m'éclairer
j'espère avoir été clair dans mes explications

Merci de votre aide

"ze Titi" a écrit dans le
message de
news:

Hello Chris !

Je ne suis pas absolument persuadé de la justesse de tes
tables, au
moins
pour la table cartes...
Pour la table adhérents, d'accord... Concernant la table
"Cartes",
déjà
moins... Comment feras-tu le jour où tu passeras à une carte à
12
dates
(par exemple) ?
Personnellement, je ferais une table cartes comportant 2
champs:
identifiant, IdAdhérent
et je rajouterais une table "Activités_carte" comportant 4
champs:
Identifiant, IdCarte, Date, IdActivité

Mais ça n'est que mon avis...

Concernant ton problème, je ne le comprends pas bien... A
partir du
moment
où tu vas aller renseigner ton formulaire cours, les cartes
vont se
remplir
automatiquement... A moins que ton formulaire cours ne
renseigne pas
ta
table Cartes mais une autre... Mais dans ce cas, tu as un gros
problème de
structure de ta base...

Eclaire-nous !

En ce jour mémorable du vendredi 23/02/2007, tu as entrepris la
lourde
tâche de taper sur ton clavier :
Bonjour
Je réfléchis à la création d'une nouvelle base pour la gestion
d'une
association sportive
J'aurais une table contenant les adhérents.
Chaque adhérent achète une carte (table "Carte") de 10h où
sont
pointés
leurs activités (3 types d'activités possibles)
pour chaque heure pointée, il y a la date et le type
d'activité (donc
les
champs suivants:
ID adhérent date1 à date10 activité1 à activité10 dans la
table
carte)
jusque là pas de problème, pour un pointage manuel.
Mais la personne chargée de la gestion doit remplir un
formulaire
"cours"
qui contient jusqu'à 30 élèves, et l'on aimerait
qu'une fois ce formulaire rempli, les dates s'ajoutent sur les
cartes
des
élèves (et si un élève a atteint la fin de sa carte,
on lui en recrée une autre automatiquement)
Sur cela on rajoute des indépendants qui ne sont pas pointés
sur des
cartes (Nom="INDEPENDANT")
Comment serait-il possible de faire pour pointer
automatiquement (ou
en
cliquant sur un bouton) les activités sur les cartes?
ou comment contourner le problème pour arriver au même
résultat?
Merci


-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info








-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info











--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info
















Avatar
ze Titi
Que sont tes requêtes ? Elles sont basées sur quoi ? le
"nouveauNuméroCarte" (au passage, supprime les accents...), c'est quoi
? Une variable ? Un champ ?

En ce jour mémorable du mercredi 07/03/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
re
Voici mon code
Private Sub Commande19_Click()
If DCount("*", "tbl CarteActivites", "ID=" & [ID Carte]) < 10 Then
nouveauNuméroCarte = [ID Carte]
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel identifiant
de carte
End If
DoCmd.OpenQuery "rqt ajout ActivitesDetail Carte", , acEdit
DoCmd.OpenQuery "rqt maj ActivitesDetail regroupement pointee", , acEdit
DoCmd.Save
End Sub


Merci

je peux éventuellement envoyer ma base pour voir ce qui cloche

Merci
"ze Titi" a écrit dans le message de news:

Salut Chris !

J'utilise cette technique régulièrement dans mes applications et ça
fonctionne à merveille...
Quel est le code utilisé ?

En ce jour exceptionnel du mercredi 07/03/2007, tu nous as très
généreusement gratifié du message suivant:

Bonjour
Presonne n'aurait une petite idée pour ce problème?
Mon champ "ID Carte" dans la table ""tbl Carte" est au format NuméroAuto,
alors peut-être qu'il n'aime pas les additions?
......
Merci
"Chris" a écrit dans le message de news:

Re
Bon j'ai résolu mon problème de numéro de carte manquante, mais l'ajout
d'un nouveau numéro de carte si la précédente est pleine a fonctionné 1
fois, j'ai supprimé des leçons, la nouvelle carte, et réessayé la manip
plusieurs fois, et depuis les leçons sont toujours ajoutées dans la même
carte
que faire?
Merci
"Chris" a écrit dans le message de news:

Ok
je vais voir ça, (pitit sushi c'est que je n'ai pas le numéro de carte
dans mon formulaire, mais j'ai du l'oublier)
je vous tiens au courant
Merci encore


Chris

"ze Titi" a écrit dans le message de
news:
Hello Chris !

En fait, il y a juste une erreur de compréhension du critère:

If DCount("*", "tbl CarteActivites", "ID=" &
leContrôleDuFormulaireContenantLeNumeroDeCarte) < 10 Then
nouveauNuméroCarte = leContrôleDuFormulaireContenantLeNumeroDeCarte
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If


En ce jour mémorable du mardi 27/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour
j'ai réussi à faire mon formulaire de saisie "brut", par contre j'ai
un petit
soucis avec ceci :
Dans du VBA, pour vérifier si tu dois créer une nouvelle carte ou
utiliser
une existante pour créer la nouvelle activité:

If DCount("*","tblActivitésCarte","Identifiant=" & numéroCarte)<10
Then
nouveauNuméroCarte=numéroCarte
Else
nouveauNuméroCarte=DMax("Identifiant","tblCartes")+1 'Crée un nouvel
identifiant de carte
End If



voici le détail de mes tables :
tbl Carte (ID, ID Adherent, Payée (Oui/non), Date)
tbl CarteActivites (ID, ID Carte, ID Activité, Date,ID Adherent)

voici le code que j'ai modifié par rapport à celui proposé :
If DCount("*", "tbl CarteActivites", "ID=" & "ID Carte") < 10 Then
nouveauNuméroCarte = "ID Carte"
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If
et voilà le problème que je rencontre, dès que je clique sur mon
bouton, j'ai
ceci:
"Erreur d'execution'3075':
Erreur de synthaxe(operateur absent) dans l'expression 'ID=ID Carte'."
Où me suis-je trompé?
Merci beaucoup



"Chris" a écrit dans le message de news:

Merci
encore une question, si possible.

Comment me conseillez-vous de faire pour créer mon formulaire de
saisie
J'explique ce que je souhaite :
Un formulaire basé sur une requète (elle même basée sur la table tbl
ActivitésDetail);
où je saisis une seule fois :
La date, l'heure, l'ID Moniteur, L'ID Activite, le Niveau, pointée
o/n
et où j'ajoute un par un l'ID Adhérent, l'ID Cheval
j'ai fait un formulaire basé sur la requète rqt ActivitésDetail, mais
dès
que je change de Cavalier, la date, l'heure,et toutes les valeurs que
je ne
souhaite qu'une fois n'apparaissent plus, et c'est normal, c'est un
enregistrement différent à chaque fois, mais je cherche le moyen de
le
faire, après, normalement je ne devrait plus vous ennuyer, faire des
formulaires, des requètes basiques, et autres j'y arrive (tant bien
que
mal)
Merci

chris




"ze Titi" a écrit dans le message
de
news:
On progresse mais il reste des zones à problèmes...

Les activités des adhérents seront enregistrées dans la table
tblActivitésCarte. Toutes les informations sur ces activités seront
enregistrées dans cette table (donc heure, date, IdMoniteur, Niveau,
IdCheval). Cette table sera la table de travail. Tous tes
regroupements
partiront de là.

Concernant le numéro auto, aucun problème...

De façon générale, dans toute base de données, les regroupements ne
se
font pas dans les tables mais dans les requêtes, ta structure doit
être la
plus générale possible afin d'être toujours utilisable en cas de
modification de fonctionnement de tes activités.
Les spécificités sont gérées dans les formulaire et les requêtes.

Bonne continuation !

En ce jour mémorable du lundi 26/02/2007, tu as entrepris la lourde
tâche
de taper sur ton clavier :
Re;

ça se clarifie un peu,
La table tblActivitésCarte me permet de stocker tous les
enregistrements
de toutes mes cartes.
La table tblCartes me permettra d'aller chercher les activités
faites
dans la carte tblActivitésCarte.

En ce qui concerne la table tblActivités, je dois stocker mes types
d'activités, je suppose, donc j'ai 4 types d'activités : Ballades,
Reprises, Concours, Horse-ball
donc dans ma table tblActivités j'aurais 4 enregistrements si j'ai
bien
tout compris.
et ensuite je crée une table tblActivitésDetail qui me permet de
stocker
toutes les activités (Identifiant, IdActivité,Date,ID
moniteur,Niveau, ,
IDadhérent,ID cheval, heure, pointée(O/N))
Dois-je mettre IDadhérent1 à IDadhérent15 si j'ai 15 cavaliers ou
alors
est-ce mieux d'avoir 1 enregistrement/adhérent dans cette table,
sachant
qu'une reprise compte au max 15 cavaliers, une ballade 30
cavaliers, une
concours beaucoup de cavaliers, et horse-ball 14 cavaliers?

si j'ai bien suivi ton raisonnement, j'ai un
enregistrement/cavalier et
ainsi je les regroupes par identifiants après
Autre question, pour les champs identifiants des différentes
tables, j'ai
défini le format en NuméroAuto, ai-je bien fait?

Cela ne sera surement pas la dernière
Merci
Chris


"ze Titi" a écrit dans le message
de
news:
Si tu places un boolean dans ta table Cartes, tu résoudras le
problème
de la vérification de paiement de la dite carte.

D'après moi, ta base devrait avoir une structure du type:

tblAdhérents (Identifiant, Nom, Prénom, etc...)
tblActivités (Identifiant, Nom, etc...)
tblCartes (Identifiant, IdAdhérent, Payée (Oui/non), etc...)
tblActivitésCarte (Identifiant, IdCarte, IdActivité, Date)

Pour compter le nombre d'activités sur une carte, une requête
suffit:

SELECT COUNT(*) FROM tblActivitésCate WHERE
Identifiant=leNuméroDeCarte

Dans du VBA, pour vérifier si tu dois créer une nouvelle carte ou
utiliser une existante pour créer la nouvelle activité:

If DCount("*","tblActivitésCarte","Identifiant=" & numéroCarte)<10
Then
nouveauNuméroCarte=numéroCarte
Else
nouveauNuméroCarte=DMax("Identifiant","tblCartes")+1 'Crée un
nouvel
identifiant de carte
End If

Ce code va vérifier que, pour le numéro de carte "numéroCarte", il
existe déjà 10 activités ou non
Si la carte a déjà 10 activités enregistrées, je crée un nouvel
identifiant sinon j'utilise le numéro "NuméroCarte"

Plus clair comme ça ?

En ce jour mémorable du lundi 26/02/2007, tu as entrepris la
lourde
tâche de taper sur ton clavier :
Salut
D'abord, merci d'avoir répondu aussi vite

La base est encore à l'état de création, donc pour la structure,
ce
n'est pas
un problème de la modifier, c'est justement pour cela que j'ai
posté
ici
c'était une première ébauche
Ce que je veux faire :
Les cartes sont des cartes de 10h prépayées, donc nous pointons
manuellement
chaque cours pour chaque adhérent sur chaque carte de 10h
tout ceci est sur papier, je veux "informatiser" tout cela, donc
je
n'en suis
qu'au stade reflexion

Il me faut une table adhérents avec toutes leurs infos
je remplis un formulaire activité1 où je choisis par des zones de
listes les
noms des adhérents (30 max par cours), même principe pour les
activités
2 et
3
ensuite j'aimerais que lorsque je "clique" sur un bouton, les
cartes
des 10h
se remplissent automatiquement avec la date et le type d'activité
Comme cela, si je recherche un adhérent, je peux visualiser ses
cartes
(anciennes ou en cours), savoir si cette carte a été payée ou
non, et
dans le
cas où la
personne a dépassé ses 10h, on lui recrée une nouvelle carte (non
payée)
Donc si je prends l'exemple d'une personne qui entamme son
dernier
cours de
sa carte(payée) et qu'il en fait un autre, une nouvelle carte est
créée
et
elle sera en statut non payé
(on n'arrète pas les cours pour une carte non payée, on s'arrange
pour
que la
personne paye le plus rapidement possible).

Ce que j'avais fait, (mais ce n'est pas la bonne solution)
c'était
d'avoir
une table "Carte" comportant des champs date1...à date10 et
activité1 à
activité10
et je voulais rajouter au fur et à mesure dedans, mais ajouter
une date
dans
une table mais sans savoir quel est le champ où ajouter.....
si c'est la deuxième date à pointer, comment dire à la requète
"si
date1 est
remplie ajoute la date à la suivante"

Difficile, le principe de pointage par cartes doit continuer,
mais je
ne vois
pas trop comment gérer ceci, donc si quelqu'un peut m'éclairer
j'espère avoir été clair dans mes explications

Merci de votre aide

"ze Titi" a écrit dans le
message de
news:

Hello Chris !

Je ne suis pas absolument persuadé de la justesse de tes tables,
au
moins
pour la table cartes...
Pour la table adhérents, d'accord... Concernant la table
"Cartes",
déjà
moins... Comment feras-tu le jour où tu passeras à une carte à
12
dates
(par exemple) ?
Personnellement, je ferais une table cartes comportant 2 champs:
identifiant, IdAdhérent
et je rajouterais une table "Activités_carte" comportant 4
champs:
Identifiant, IdCarte, Date, IdActivité

Mais ça n'est que mon avis...

Concernant ton problème, je ne le comprends pas bien... A partir
du
moment
où tu vas aller renseigner ton formulaire cours, les cartes vont
se
remplir
automatiquement... A moins que ton formulaire cours ne renseigne
pas
ta
table Cartes mais une autre... Mais dans ce cas, tu as un gros
problème de
structure de ta base...

Eclaire-nous !

En ce jour mémorable du vendredi 23/02/2007, tu as entrepris la
lourde
tâche de taper sur ton clavier :
Bonjour
Je réfléchis à la création d'une nouvelle base pour la gestion
d'une
association sportive
J'aurais une table contenant les adhérents.
Chaque adhérent achète une carte (table "Carte") de 10h où sont
pointés
leurs activités (3 types d'activités possibles)
pour chaque heure pointée, il y a la date et le type d'activité
(donc
les
champs suivants:
ID adhérent date1 à date10 activité1 à activité10 dans la table
carte)
jusque là pas de problème, pour un pointage manuel.
Mais la personne chargée de la gestion doit remplir un
formulaire
"cours"
qui contient jusqu'à 30 élèves, et l'on aimerait
qu'une fois ce formulaire rempli, les dates s'ajoutent sur les
cartes
des
élèves (et si un élève a atteint la fin de sa carte,
on lui en recrée une autre automatiquement)
Sur cela on rajoute des indépendants qui ne sont pas pointés
sur des
cartes (Nom="INDEPENDANT")
Comment serait-il possible de faire pour pointer
automatiquement (ou
en
cliquant sur un bouton) les activités sur les cartes?
ou comment contourner le problème pour arriver au même
résultat?
Merci


-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info








-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info











-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info














Avatar
Chris
Re

Private Sub Commande19_Click()
If DCount("*", "tbl CarteActivites", "ID=" & [ID Carte]) < 10 Then
nouveauNumeroCarte = [ID Carte]
Else
nouveauNumeroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel identifiant
de carte
End If

DoCmd.OpenQuery "rqt ajout ActivitesDetail Carte", , acEdit
"celle-ci est basée sur une requète qui me donne toutes les activités
effectuées (contenues dans la table "tbl ActivitesDetail")
mais non pointées et permet de les ajouter à la table "tbl CarteActivites"
qui regroupe les activités pointées sur les cartes"

DoCmd.OpenQuery "rqt maj ActivitesDetail regroupement pointee", , acEdit
celle-ci fait une mise à jour du champ "pointée" de la table "tbl
ActivitesDetail"afin que l'activité que je viens de pointer ait la valeur
"vrai"

DoCmd.Save
End Sub

j'ai bêtement collé le code que vous m'aviez donné en changeant les noms
correspondant à mes champs, mais sans
me poser la question à propos de "nouveauNuméroCarte", pour moi ce n'est
qu'une variable qui sert à verifier l'ID Carte
et à le changer le cas échéant (le pire c'est que cela a fonctionné 1 fois)


je voudrais afficher dans un formulaire les activités non pointées (c'est
fait)(ce formulaire comprends les champs suivants :
ID Activite, ID Moniteur, ID adherent, ID Carte, ID Cheval, type d'activite,
date, heure, niveau, et pointée)
je clique sur un bouton, et access vérifie avant de pointer les activités
sur une carte (sur "tbl CarteActivites" en relation avec "tbl Carte"),
combien d'activités sont pointées, s'il y en a déja 10, on rajoute une
carte, et on pointe sur celle-ci.
Maintenant, je ne suis pas sur de bien m'y prendre pour effectuer cela, car
en réfléchissant un peu, dans ce formulaire, on voit le numéro de carte,
tout va bien
s'il n'y a qu'une carte, mais si la personne a 2 cartes voire plusieurs,
quel numéro va-t-il afficher?
il faudrait peut-être que lorsqu'une carte est finie, je l'archive dans une
autre table, de manière à n'avoir qu'une seule carte en cours par adhérent,
et à pouvoir quand même visualiser les anciennes cartes afin de justifier
les heures effectuées

Donc en résumé, au moment de pointer:
si la carte a 10 activités de pointées, on en recrée une autre, et ensuite
on pointe l'activité sur la nouvelle carte
si la carte a moins de 10 activités, on pointe l'acitivité sur cette carte

Merci de votre aide
si besoin, voici la base, peut-être arriverez-vous mieux à voir mon problème

http://cjoint.com/?dhp150CcN6

Désolé encore d'abuser de votre temps
Merci
"ze Titi" a écrit dans le message de news:

Que sont tes requêtes ? Elles sont basées sur quoi ? le
"nouveauNuméroCarte" (au passage, supprime les accents...), c'est quoi ?
Une variable ? Un champ ?

En ce jour mémorable du mercredi 07/03/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
re
Voici mon code
Private Sub Commande19_Click()
If DCount("*", "tbl CarteActivites", "ID=" & [ID Carte]) < 10 Then
nouveauNuméroCarte = [ID Carte]
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If
DoCmd.OpenQuery "rqt ajout ActivitesDetail Carte", , acEdit
DoCmd.OpenQuery "rqt maj ActivitesDetail regroupement pointee", , acEdit
DoCmd.Save
End Sub


Merci

je peux éventuellement envoyer ma base pour voir ce qui cloche

Merci
"ze Titi" a écrit dans le message de
news:
Salut Chris !

J'utilise cette technique régulièrement dans mes applications et ça
fonctionne à merveille...
Quel est le code utilisé ?

En ce jour exceptionnel du mercredi 07/03/2007, tu nous as très
généreusement gratifié du message suivant:

Bonjour
Presonne n'aurait une petite idée pour ce problème?
Mon champ "ID Carte" dans la table ""tbl Carte" est au format
NuméroAuto,
alors peut-être qu'il n'aime pas les additions?
......
Merci
"Chris" a écrit dans le message de news:

Re
Bon j'ai résolu mon problème de numéro de carte manquante, mais
l'ajout d'un nouveau numéro de carte si la précédente est pleine a
fonctionné 1 fois, j'ai supprimé des leçons, la nouvelle carte, et
réessayé la manip plusieurs fois, et depuis les leçons sont toujours
ajoutées dans la même carte
que faire?
Merci
"Chris" a écrit dans le message de news:

Ok
je vais voir ça, (pitit sushi c'est que je n'ai pas le numéro de
carte dans mon formulaire, mais j'ai du l'oublier)
je vous tiens au courant
Merci encore


Chris

"ze Titi" a écrit dans le message
de news:
Hello Chris !

En fait, il y a juste une erreur de compréhension du critère:

If DCount("*", "tbl CarteActivites", "ID=" &
leContrôleDuFormulaireContenantLeNumeroDeCarte) < 10 Then
nouveauNuméroCarte =
leContrôleDuFormulaireContenantLeNumeroDeCarte
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If


En ce jour mémorable du mardi 27/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour
j'ai réussi à faire mon formulaire de saisie "brut", par contre
j'ai un petit
soucis avec ceci :
Dans du VBA, pour vérifier si tu dois créer une nouvelle carte ou
utiliser
une existante pour créer la nouvelle activité:

If DCount("*","tblActivitésCarte","Identifiant=" & numéroCarte)<10
Then
nouveauNuméroCarte=numéroCarte
Else
nouveauNuméroCarte=DMax("Identifiant","tblCartes")+1 'Crée un
nouvel
identifiant de carte
End If



voici le détail de mes tables :
tbl Carte (ID, ID Adherent, Payée (Oui/non), Date)
tbl CarteActivites (ID, ID Carte, ID Activité, Date,ID Adherent)

voici le code que j'ai modifié par rapport à celui proposé :
If DCount("*", "tbl CarteActivites", "ID=" & "ID Carte") < 10 Then
nouveauNuméroCarte = "ID Carte"
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If
et voilà le problème que je rencontre, dès que je clique sur mon
bouton, j'ai
ceci:
"Erreur d'execution'3075':
Erreur de synthaxe(operateur absent) dans l'expression 'ID=ID
Carte'."
Où me suis-je trompé?
Merci beaucoup



"Chris" a écrit dans le message de news:

Merci
encore une question, si possible.

Comment me conseillez-vous de faire pour créer mon formulaire de
saisie
J'explique ce que je souhaite :
Un formulaire basé sur une requète (elle même basée sur la table
tbl
ActivitésDetail);
où je saisis une seule fois :
La date, l'heure, l'ID Moniteur, L'ID Activite, le Niveau, pointée
o/n
et où j'ajoute un par un l'ID Adhérent, l'ID Cheval
j'ai fait un formulaire basé sur la requète rqt ActivitésDetail,
mais dès
que je change de Cavalier, la date, l'heure,et toutes les valeurs
que je ne
souhaite qu'une fois n'apparaissent plus, et c'est normal, c'est
un
enregistrement différent à chaque fois, mais je cherche le moyen
de le
faire, après, normalement je ne devrait plus vous ennuyer, faire
des
formulaires, des requètes basiques, et autres j'y arrive (tant
bien que
mal)
Merci

chris




"ze Titi" a écrit dans le
message de
news:
On progresse mais il reste des zones à problèmes...

Les activités des adhérents seront enregistrées dans la table
tblActivitésCarte. Toutes les informations sur ces activités
seront
enregistrées dans cette table (donc heure, date, IdMoniteur,
Niveau,
IdCheval). Cette table sera la table de travail. Tous tes
regroupements
partiront de là.

Concernant le numéro auto, aucun problème...

De façon générale, dans toute base de données, les regroupements
ne se
font pas dans les tables mais dans les requêtes, ta structure
doit être la
plus générale possible afin d'être toujours utilisable en cas de
modification de fonctionnement de tes activités.
Les spécificités sont gérées dans les formulaire et les requêtes.

Bonne continuation !

En ce jour mémorable du lundi 26/02/2007, tu as entrepris la
lourde tâche
de taper sur ton clavier :
Re;

ça se clarifie un peu,
La table tblActivitésCarte me permet de stocker tous les
enregistrements
de toutes mes cartes.
La table tblCartes me permettra d'aller chercher les activités
faites
dans la carte tblActivitésCarte.

En ce qui concerne la table tblActivités, je dois stocker mes
types
d'activités, je suppose, donc j'ai 4 types d'activités :
Ballades,
Reprises, Concours, Horse-ball
donc dans ma table tblActivités j'aurais 4 enregistrements si
j'ai bien
tout compris.
et ensuite je crée une table tblActivitésDetail qui me permet de
stocker
toutes les activités (Identifiant, IdActivité,Date,ID
moniteur,Niveau, ,
IDadhérent,ID cheval, heure, pointée(O/N))
Dois-je mettre IDadhérent1 à IDadhérent15 si j'ai 15 cavaliers
ou alors
est-ce mieux d'avoir 1 enregistrement/adhérent dans cette table,
sachant
qu'une reprise compte au max 15 cavaliers, une ballade 30
cavaliers, une
concours beaucoup de cavaliers, et horse-ball 14 cavaliers?

si j'ai bien suivi ton raisonnement, j'ai un
enregistrement/cavalier et
ainsi je les regroupes par identifiants après
Autre question, pour les champs identifiants des différentes
tables, j'ai
défini le format en NuméroAuto, ai-je bien fait?

Cela ne sera surement pas la dernière
Merci
Chris


"ze Titi" a écrit dans le
message de
news:
Si tu places un boolean dans ta table Cartes, tu résoudras le
problème
de la vérification de paiement de la dite carte.

D'après moi, ta base devrait avoir une structure du type:

tblAdhérents (Identifiant, Nom, Prénom, etc...)
tblActivités (Identifiant, Nom, etc...)
tblCartes (Identifiant, IdAdhérent, Payée (Oui/non), etc...)
tblActivitésCarte (Identifiant, IdCarte, IdActivité, Date)

Pour compter le nombre d'activités sur une carte, une requête
suffit:

SELECT COUNT(*) FROM tblActivitésCate WHERE
Identifiant=leNuméroDeCarte

Dans du VBA, pour vérifier si tu dois créer une nouvelle carte
ou
utiliser une existante pour créer la nouvelle activité:

If DCount("*","tblActivitésCarte","Identifiant=" &
numéroCarte)<10 Then
nouveauNuméroCarte=numéroCarte
Else
nouveauNuméroCarte=DMax("Identifiant","tblCartes")+1 'Crée un
nouvel
identifiant de carte
End If

Ce code va vérifier que, pour le numéro de carte "numéroCarte",
il
existe déjà 10 activités ou non
Si la carte a déjà 10 activités enregistrées, je crée un nouvel
identifiant sinon j'utilise le numéro "NuméroCarte"

Plus clair comme ça ?

En ce jour mémorable du lundi 26/02/2007, tu as entrepris la
lourde
tâche de taper sur ton clavier :
Salut
D'abord, merci d'avoir répondu aussi vite

La base est encore à l'état de création, donc pour la
structure, ce
n'est pas
un problème de la modifier, c'est justement pour cela que j'ai
posté
ici
c'était une première ébauche
Ce que je veux faire :
Les cartes sont des cartes de 10h prépayées, donc nous
pointons
manuellement
chaque cours pour chaque adhérent sur chaque carte de 10h
tout ceci est sur papier, je veux "informatiser" tout cela,
donc je
n'en suis
qu'au stade reflexion

Il me faut une table adhérents avec toutes leurs infos
je remplis un formulaire activité1 où je choisis par des zones
de
listes les
noms des adhérents (30 max par cours), même principe pour les
activités
2 et
3
ensuite j'aimerais que lorsque je "clique" sur un bouton, les
cartes
des 10h
se remplissent automatiquement avec la date et le type
d'activité
Comme cela, si je recherche un adhérent, je peux visualiser
ses cartes
(anciennes ou en cours), savoir si cette carte a été payée ou
non, et
dans le
cas où la
personne a dépassé ses 10h, on lui recrée une nouvelle carte
(non
payée)
Donc si je prends l'exemple d'une personne qui entamme son
dernier
cours de
sa carte(payée) et qu'il en fait un autre, une nouvelle carte
est créée
et
elle sera en statut non payé
(on n'arrète pas les cours pour une carte non payée, on
s'arrange pour
que la
personne paye le plus rapidement possible).

Ce que j'avais fait, (mais ce n'est pas la bonne solution)
c'était
d'avoir
une table "Carte" comportant des champs date1...à date10 et
activité1 à
activité10
et je voulais rajouter au fur et à mesure dedans, mais ajouter
une date
dans
une table mais sans savoir quel est le champ où ajouter.....
si c'est la deuxième date à pointer, comment dire à la requète
"si
date1 est
remplie ajoute la date à la suivante"

Difficile, le principe de pointage par cartes doit continuer,
mais je
ne vois
pas trop comment gérer ceci, donc si quelqu'un peut m'éclairer
j'espère avoir été clair dans mes explications

Merci de votre aide

"ze Titi" a écrit dans le
message de
news:

Hello Chris !

Je ne suis pas absolument persuadé de la justesse de tes
tables, au
moins
pour la table cartes...
Pour la table adhérents, d'accord... Concernant la table
"Cartes",
déjà
moins... Comment feras-tu le jour où tu passeras à une carte
à 12
dates
(par exemple) ?
Personnellement, je ferais une table cartes comportant 2
champs:
identifiant, IdAdhérent
et je rajouterais une table "Activités_carte" comportant 4
champs:
Identifiant, IdCarte, Date, IdActivité

Mais ça n'est que mon avis...

Concernant ton problème, je ne le comprends pas bien... A
partir du
moment
où tu vas aller renseigner ton formulaire cours, les cartes
vont se
remplir
automatiquement... A moins que ton formulaire cours ne
renseigne pas
ta
table Cartes mais une autre... Mais dans ce cas, tu as un
gros
problème de
structure de ta base...

Eclaire-nous !

En ce jour mémorable du vendredi 23/02/2007, tu as entrepris
la lourde
tâche de taper sur ton clavier :
Bonjour
Je réfléchis à la création d'une nouvelle base pour la
gestion d'une
association sportive
J'aurais une table contenant les adhérents.
Chaque adhérent achète une carte (table "Carte") de 10h où
sont
pointés
leurs activités (3 types d'activités possibles)
pour chaque heure pointée, il y a la date et le type
d'activité (donc
les
champs suivants:
ID adhérent date1 à date10 activité1 à activité10 dans la
table
carte)
jusque là pas de problème, pour un pointage manuel.
Mais la personne chargée de la gestion doit remplir un
formulaire
"cours"
qui contient jusqu'à 30 élèves, et l'on aimerait
qu'une fois ce formulaire rempli, les dates s'ajoutent sur
les cartes
des
élèves (et si un élève a atteint la fin de sa carte,
on lui en recrée une autre automatiquement)
Sur cela on rajoute des indépendants qui ne sont pas pointés
sur des
cartes (Nom="INDEPENDANT")
Comment serait-il possible de faire pour pointer
automatiquement (ou
en
cliquant sur un bouton) les activités sur les cartes?
ou comment contourner le problème pour arriver au même
résultat?
Merci


-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info








-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info











-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info


















Avatar
ze Titi
Rien qu'en regardant ta structure, il est évident qu'il y a un problème
de compréhension pour la mise en place.

As-tu compté le nombre de redondance d'informations que tu as dans tes
tables ? Le but d'une base de données est de synthétiser la gestion de
données. Toute information n'est stockée qu'une seule fois. Seuls les
champs de liaison peuvent apparaître plusieurs fois. Si ça n'est pas le
cas, il y a un problème !
En l'occurence, le problème est présent. Tu dois revoir cette
structure. Par exemple, tu saisis 2 fois une date d'activité.
Regarde le nombre de fois où tu dois stocker ton identifiant d'adhérent
dans des tables qui sont en liaison entre elles !

Si tu relis mes réponses précédentes, tu verras que je t'ai tout
expliqué. Je peux difficilement faire mieux...

Si j'ai le temps, j'essaierai de te donner une structure de base plus
appropriée... Malheureusement, je n'ai que très peu de temps à
consacrer au forum...

Bon courage.

En ce jour exceptionnel du mercredi 07/03/2007, tu nous as très
généreusement gratifié du message suivant:

Re

Private Sub Commande19_Click()
If DCount("*", "tbl CarteActivites", "ID=" & [ID Carte]) < 10 Then
nouveauNumeroCarte = [ID Carte]
Else
nouveauNumeroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel identifiant
de carte
End If

DoCmd.OpenQuery "rqt ajout ActivitesDetail Carte", , acEdit
"celle-ci est basée sur une requète qui me donne toutes les activités
effectuées (contenues dans la table "tbl ActivitesDetail")
mais non pointées et permet de les ajouter à la table "tbl CarteActivites"
qui regroupe les activités pointées sur les cartes"

DoCmd.OpenQuery "rqt maj ActivitesDetail regroupement pointee", , acEdit
celle-ci fait une mise à jour du champ "pointée" de la table "tbl
ActivitesDetail"afin que l'activité que je viens de pointer ait la valeur
"vrai"

DoCmd.Save
End Sub

j'ai bêtement collé le code que vous m'aviez donné en changeant les noms
correspondant à mes champs, mais sans
me poser la question à propos de "nouveauNuméroCarte", pour moi ce n'est
qu'une variable qui sert à verifier l'ID Carte
et à le changer le cas échéant (le pire c'est que cela a fonctionné 1 fois)


je voudrais afficher dans un formulaire les activités non pointées (c'est
fait)(ce formulaire comprends les champs suivants :
ID Activite, ID Moniteur, ID adherent, ID Carte, ID Cheval, type d'activite,
date, heure, niveau, et pointée)
je clique sur un bouton, et access vérifie avant de pointer les activités sur
une carte (sur "tbl CarteActivites" en relation avec "tbl Carte"),
combien d'activités sont pointées, s'il y en a déja 10, on rajoute une carte,
et on pointe sur celle-ci.
Maintenant, je ne suis pas sur de bien m'y prendre pour effectuer cela, car
en réfléchissant un peu, dans ce formulaire, on voit le numéro de carte, tout
va bien
s'il n'y a qu'une carte, mais si la personne a 2 cartes voire plusieurs, quel
numéro va-t-il afficher?
il faudrait peut-être que lorsqu'une carte est finie, je l'archive dans une
autre table, de manière à n'avoir qu'une seule carte en cours par adhérent,
et à pouvoir quand même visualiser les anciennes cartes afin de justifier les
heures effectuées

Donc en résumé, au moment de pointer:
si la carte a 10 activités de pointées, on en recrée une autre, et ensuite on
pointe l'activité sur la nouvelle carte
si la carte a moins de 10 activités, on pointe l'acitivité sur cette carte

Merci de votre aide
si besoin, voici la base, peut-être arriverez-vous mieux à voir mon problème

http://cjoint.com/?dhp150CcN6

Désolé encore d'abuser de votre temps
Merci
"ze Titi" a écrit dans le message de news:

Que sont tes requêtes ? Elles sont basées sur quoi ? le
"nouveauNuméroCarte" (au passage, supprime les accents...), c'est quoi ?
Une variable ? Un champ ?

En ce jour mémorable du mercredi 07/03/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
re
Voici mon code
Private Sub Commande19_Click()
If DCount("*", "tbl CarteActivites", "ID=" & [ID Carte]) < 10 Then
nouveauNuméroCarte = [ID Carte]
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If
DoCmd.OpenQuery "rqt ajout ActivitesDetail Carte", , acEdit
DoCmd.OpenQuery "rqt maj ActivitesDetail regroupement pointee", , acEdit
DoCmd.Save
End Sub


Merci

je peux éventuellement envoyer ma base pour voir ce qui cloche

Merci
"ze Titi" a écrit dans le message de
news:
Salut Chris !

J'utilise cette technique régulièrement dans mes applications et ça
fonctionne à merveille...
Quel est le code utilisé ?

En ce jour exceptionnel du mercredi 07/03/2007, tu nous as très
généreusement gratifié du message suivant:

Bonjour
Presonne n'aurait une petite idée pour ce problème?
Mon champ "ID Carte" dans la table ""tbl Carte" est au format
NuméroAuto,
alors peut-être qu'il n'aime pas les additions?
......
Merci
"Chris" a écrit dans le message de news:

Re
Bon j'ai résolu mon problème de numéro de carte manquante, mais l'ajout
d'un nouveau numéro de carte si la précédente est pleine a fonctionné 1
fois, j'ai supprimé des leçons, la nouvelle carte, et réessayé la manip
plusieurs fois, et depuis les leçons sont toujours ajoutées dans la
même carte
que faire?
Merci
"Chris" a écrit dans le message de news:

Ok
je vais voir ça, (pitit sushi c'est que je n'ai pas le numéro de carte
dans mon formulaire, mais j'ai du l'oublier)
je vous tiens au courant
Merci encore


Chris

"ze Titi" a écrit dans le message de
news:
Hello Chris !

En fait, il y a juste une erreur de compréhension du critère:

If DCount("*", "tbl CarteActivites", "ID=" &
leContrôleDuFormulaireContenantLeNumeroDeCarte) < 10 Then
nouveauNuméroCarte = leContrôleDuFormulaireContenantLeNumeroDeCarte
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If


En ce jour mémorable du mardi 27/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour
j'ai réussi à faire mon formulaire de saisie "brut", par contre j'ai
un petit
soucis avec ceci :
Dans du VBA, pour vérifier si tu dois créer une nouvelle carte ou
utiliser
une existante pour créer la nouvelle activité:

If DCount("*","tblActivitésCarte","Identifiant=" & numéroCarte)<10
Then
nouveauNuméroCarte=numéroCarte
Else
nouveauNuméroCarte=DMax("Identifiant","tblCartes")+1 'Crée un nouvel
identifiant de carte
End If



voici le détail de mes tables :
tbl Carte (ID, ID Adherent, Payée (Oui/non), Date)
tbl CarteActivites (ID, ID Carte, ID Activité, Date,ID Adherent)

voici le code que j'ai modifié par rapport à celui proposé :
If DCount("*", "tbl CarteActivites", "ID=" & "ID Carte") < 10 Then
nouveauNuméroCarte = "ID Carte"
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If
et voilà le problème que je rencontre, dès que je clique sur mon
bouton, j'ai
ceci:
"Erreur d'execution'3075':
Erreur de synthaxe(operateur absent) dans l'expression 'ID=ID
Carte'."
Où me suis-je trompé?
Merci beaucoup



"Chris" a écrit dans le message de news:

Merci
encore une question, si possible.

Comment me conseillez-vous de faire pour créer mon formulaire de
saisie
J'explique ce que je souhaite :
Un formulaire basé sur une requète (elle même basée sur la table
tbl
ActivitésDetail);
où je saisis une seule fois :
La date, l'heure, l'ID Moniteur, L'ID Activite, le Niveau, pointée
o/n
et où j'ajoute un par un l'ID Adhérent, l'ID Cheval
j'ai fait un formulaire basé sur la requète rqt ActivitésDetail,
mais dès
que je change de Cavalier, la date, l'heure,et toutes les valeurs
que je ne
souhaite qu'une fois n'apparaissent plus, et c'est normal, c'est un
enregistrement différent à chaque fois, mais je cherche le moyen de
le
faire, après, normalement je ne devrait plus vous ennuyer, faire
des
formulaires, des requètes basiques, et autres j'y arrive (tant bien
que
mal)
Merci

chris




"ze Titi" a écrit dans le message
de
news:
On progresse mais il reste des zones à problèmes...

Les activités des adhérents seront enregistrées dans la table
tblActivitésCarte. Toutes les informations sur ces activités
seront
enregistrées dans cette table (donc heure, date, IdMoniteur,
Niveau,
IdCheval). Cette table sera la table de travail. Tous tes
regroupements
partiront de là.

Concernant le numéro auto, aucun problème...

De façon générale, dans toute base de données, les regroupements
ne se
font pas dans les tables mais dans les requêtes, ta structure doit
être la
plus générale possible afin d'être toujours utilisable en cas de
modification de fonctionnement de tes activités.
Les spécificités sont gérées dans les formulaire et les requêtes.

Bonne continuation !

En ce jour mémorable du lundi 26/02/2007, tu as entrepris la
lourde tâche
de taper sur ton clavier :
Re;

ça se clarifie un peu,
La table tblActivitésCarte me permet de stocker tous les
enregistrements
de toutes mes cartes.
La table tblCartes me permettra d'aller chercher les activités
faites
dans la carte tblActivitésCarte.

En ce qui concerne la table tblActivités, je dois stocker mes
types
d'activités, je suppose, donc j'ai 4 types d'activités :
Ballades,
Reprises, Concours, Horse-ball
donc dans ma table tblActivités j'aurais 4 enregistrements si
j'ai bien
tout compris.
et ensuite je crée une table tblActivitésDetail qui me permet de
stocker
toutes les activités (Identifiant, IdActivité,Date,ID
moniteur,Niveau, ,
IDadhérent,ID cheval, heure, pointée(O/N))
Dois-je mettre IDadhérent1 à IDadhérent15 si j'ai 15 cavaliers ou
alors
est-ce mieux d'avoir 1 enregistrement/adhérent dans cette table,
sachant
qu'une reprise compte au max 15 cavaliers, une ballade 30
cavaliers, une
concours beaucoup de cavaliers, et horse-ball 14 cavaliers?

si j'ai bien suivi ton raisonnement, j'ai un
enregistrement/cavalier et
ainsi je les regroupes par identifiants après
Autre question, pour les champs identifiants des différentes
tables, j'ai
défini le format en NuméroAuto, ai-je bien fait?

Cela ne sera surement pas la dernière
Merci
Chris


"ze Titi" a écrit dans le
message de
news:
Si tu places un boolean dans ta table Cartes, tu résoudras le
problème
de la vérification de paiement de la dite carte.

D'après moi, ta base devrait avoir une structure du type:

tblAdhérents (Identifiant, Nom, Prénom, etc...)
tblActivités (Identifiant, Nom, etc...)
tblCartes (Identifiant, IdAdhérent, Payée (Oui/non), etc...)
tblActivitésCarte (Identifiant, IdCarte, IdActivité, Date)

Pour compter le nombre d'activités sur une carte, une requête
suffit:

SELECT COUNT(*) FROM tblActivitésCate WHERE
Identifiant=leNuméroDeCarte

Dans du VBA, pour vérifier si tu dois créer une nouvelle carte
ou
utiliser une existante pour créer la nouvelle activité:

If DCount("*","tblActivitésCarte","Identifiant=" &
numéroCarte)<10 Then
nouveauNuméroCarte=numéroCarte
Else
nouveauNuméroCarte=DMax("Identifiant","tblCartes")+1 'Crée un
nouvel
identifiant de carte
End If

Ce code va vérifier que, pour le numéro de carte "numéroCarte",
il
existe déjà 10 activités ou non
Si la carte a déjà 10 activités enregistrées, je crée un nouvel
identifiant sinon j'utilise le numéro "NuméroCarte"

Plus clair comme ça ?

En ce jour mémorable du lundi 26/02/2007, tu as entrepris la
lourde
tâche de taper sur ton clavier :
Salut
D'abord, merci d'avoir répondu aussi vite

La base est encore à l'état de création, donc pour la
structure, ce
n'est pas
un problème de la modifier, c'est justement pour cela que j'ai
posté
ici
c'était une première ébauche
Ce que je veux faire :
Les cartes sont des cartes de 10h prépayées, donc nous pointons
manuellement
chaque cours pour chaque adhérent sur chaque carte de 10h
tout ceci est sur papier, je veux "informatiser" tout cela,
donc je
n'en suis
qu'au stade reflexion

Il me faut une table adhérents avec toutes leurs infos
je remplis un formulaire activité1 où je choisis par des zones
de
listes les
noms des adhérents (30 max par cours), même principe pour les
activités
2 et
3
ensuite j'aimerais que lorsque je "clique" sur un bouton, les
cartes
des 10h
se remplissent automatiquement avec la date et le type
d'activité
Comme cela, si je recherche un adhérent, je peux visualiser ses
cartes
(anciennes ou en cours), savoir si cette carte a été payée ou
non, et
dans le
cas où la
personne a dépassé ses 10h, on lui recrée une nouvelle carte
(non
payée)
Donc si je prends l'exemple d'une personne qui entamme son
dernier
cours de
sa carte(payée) et qu'il en fait un autre, une nouvelle carte
est créée
et
elle sera en statut non payé
(on n'arrète pas les cours pour une carte non payée, on
s'arrange pour
que la
personne paye le plus rapidement possible).

Ce que j'avais fait, (mais ce n'est pas la bonne solution)
c'était
d'avoir
une table "Carte" comportant des champs date1...à date10 et
activité1 à
activité10
et je voulais rajouter au fur et à mesure dedans, mais ajouter
une date
dans
une table mais sans savoir quel est le champ où ajouter.....
si c'est la deuxième date à pointer, comment dire à la requète
"si
date1 est
remplie ajoute la date à la suivante"

Difficile, le principe de pointage par cartes doit continuer,
mais je
ne vois
pas trop comment gérer ceci, donc si quelqu'un peut m'éclairer
j'espère avoir été clair dans mes explications

Merci de votre aide

"ze Titi" a écrit dans le
message de
news:

Hello Chris !

Je ne suis pas absolument persuadé de la justesse de tes
tables, au
moins
pour la table cartes...
Pour la table adhérents, d'accord... Concernant la table
"Cartes",
déjà
moins... Comment feras-tu le jour où tu passeras à une carte à
12
dates
(par exemple) ?
Personnellement, je ferais une table cartes comportant 2
champs:
identifiant, IdAdhérent
et je rajouterais une table "Activités_carte" comportant 4
champs:
Identifiant, IdCarte, Date, IdActivité

Mais ça n'est que mon avis...

Concernant ton problème, je ne le comprends pas bien... A
partir du
moment
où tu vas aller renseigner ton formulaire cours, les cartes
vont se
remplir
automatiquement... A moins que ton formulaire cours ne
renseigne pas
ta
table Cartes mais une autre... Mais dans ce cas, tu as un gros
problème de
structure de ta base...

Eclaire-nous !

En ce jour mémorable du vendredi 23/02/2007, tu as entrepris
la lourde
tâche de taper sur ton clavier :
Bonjour
Je réfléchis à la création d'une nouvelle base pour la
gestion d'une
association sportive
J'aurais une table contenant les adhérents.
Chaque adhérent achète une carte (table "Carte") de 10h où
sont
pointés
leurs activités (3 types d'activités possibles)
pour chaque heure pointée, il y a la date et le type
d'activité (donc
les
champs suivants:
ID adhérent date1 à date10 activité1 à activité10 dans la
table
carte)
jusque là pas de problème, pour un pointage manuel.
Mais la personne chargée de la gestion doit remplir un
formulaire
"cours"
qui contient jusqu'à 30 élèves, et l'on aimerait
qu'une fois ce formulaire rempli, les dates s'ajoutent sur
les cartes
des
élèves (et si un élève a atteint la fin de sa carte,
on lui en recrée une autre automatiquement)
Sur cela on rajoute des indépendants qui ne sont pas pointés
sur des
cartes (Nom="INDEPENDANT")
Comment serait-il possible de faire pour pointer
automatiquement (ou
en
cliquant sur un bouton) les activités sur les cartes?
ou comment contourner le problème pour arriver au même
résultat?
Merci


-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info








-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info











-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info
















Avatar
Chris
Oki, je vais reprendre depuis le début et relire tout ce qui a été dit, et
refaire travailler mes neurones

Merci
et si tu as le temps, je suis preneur pour la structure

Merci beaucoup

"ze Titi" a écrit dans le message de news:

Rien qu'en regardant ta structure, il est évident qu'il y a un problème de
compréhension pour la mise en place.

As-tu compté le nombre de redondance d'informations que tu as dans tes
tables ? Le but d'une base de données est de synthétiser la gestion de
données. Toute information n'est stockée qu'une seule fois. Seuls les
champs de liaison peuvent apparaître plusieurs fois. Si ça n'est pas le
cas, il y a un problème !
En l'occurence, le problème est présent. Tu dois revoir cette structure.
Par exemple, tu saisis 2 fois une date d'activité.
Regarde le nombre de fois où tu dois stocker ton identifiant d'adhérent
dans des tables qui sont en liaison entre elles !

Si tu relis mes réponses précédentes, tu verras que je t'ai tout expliqué.
Je peux difficilement faire mieux...

Si j'ai le temps, j'essaierai de te donner une structure de base plus
appropriée... Malheureusement, je n'ai que très peu de temps à consacrer
au forum...

Bon courage.

En ce jour exceptionnel du mercredi 07/03/2007, tu nous as très
généreusement gratifié du message suivant:

Re

Private Sub Commande19_Click()
If DCount("*", "tbl CarteActivites", "ID=" & [ID Carte]) < 10 Then
nouveauNumeroCarte = [ID Carte]
Else
nouveauNumeroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If

DoCmd.OpenQuery "rqt ajout ActivitesDetail Carte", , acEdit
"celle-ci est basée sur une requète qui me donne toutes les activités
effectuées (contenues dans la table "tbl ActivitesDetail")
mais non pointées et permet de les ajouter à la table "tbl
CarteActivites" qui regroupe les activités pointées sur les cartes"

DoCmd.OpenQuery "rqt maj ActivitesDetail regroupement pointee", , acEdit
celle-ci fait une mise à jour du champ "pointée" de la table "tbl
ActivitesDetail"afin que l'activité que je viens de pointer ait la valeur
"vrai"

DoCmd.Save
End Sub

j'ai bêtement collé le code que vous m'aviez donné en changeant les noms
correspondant à mes champs, mais sans
me poser la question à propos de "nouveauNuméroCarte", pour moi ce n'est
qu'une variable qui sert à verifier l'ID Carte
et à le changer le cas échéant (le pire c'est que cela a fonctionné 1
fois)


je voudrais afficher dans un formulaire les activités non pointées (c'est
fait)(ce formulaire comprends les champs suivants :
ID Activite, ID Moniteur, ID adherent, ID Carte, ID Cheval, type
d'activite, date, heure, niveau, et pointée)
je clique sur un bouton, et access vérifie avant de pointer les activités
sur une carte (sur "tbl CarteActivites" en relation avec "tbl Carte"),
combien d'activités sont pointées, s'il y en a déja 10, on rajoute une
carte, et on pointe sur celle-ci.
Maintenant, je ne suis pas sur de bien m'y prendre pour effectuer cela,
car en réfléchissant un peu, dans ce formulaire, on voit le numéro de
carte, tout va bien
s'il n'y a qu'une carte, mais si la personne a 2 cartes voire plusieurs,
quel numéro va-t-il afficher?
il faudrait peut-être que lorsqu'une carte est finie, je l'archive dans
une autre table, de manière à n'avoir qu'une seule carte en cours par
adhérent, et à pouvoir quand même visualiser les anciennes cartes afin de
justifier les heures effectuées

Donc en résumé, au moment de pointer:
si la carte a 10 activités de pointées, on en recrée une autre, et
ensuite on pointe l'activité sur la nouvelle carte
si la carte a moins de 10 activités, on pointe l'acitivité sur cette
carte

Merci de votre aide
si besoin, voici la base, peut-être arriverez-vous mieux à voir mon
problème

http://cjoint.com/?dhp150CcN6

Désolé encore d'abuser de votre temps
Merci
"ze Titi" a écrit dans le message de
news:
Que sont tes requêtes ? Elles sont basées sur quoi ? le
"nouveauNuméroCarte" (au passage, supprime les accents...), c'est quoi ?
Une variable ? Un champ ?

En ce jour mémorable du mercredi 07/03/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
re
Voici mon code
Private Sub Commande19_Click()
If DCount("*", "tbl CarteActivites", "ID=" & [ID Carte]) < 10 Then
nouveauNuméroCarte = [ID Carte]
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If
DoCmd.OpenQuery "rqt ajout ActivitesDetail Carte", , acEdit
DoCmd.OpenQuery "rqt maj ActivitesDetail regroupement pointee", ,
acEdit
DoCmd.Save
End Sub


Merci

je peux éventuellement envoyer ma base pour voir ce qui cloche

Merci
"ze Titi" a écrit dans le message de
news:
Salut Chris !

J'utilise cette technique régulièrement dans mes applications et ça
fonctionne à merveille...
Quel est le code utilisé ?

En ce jour exceptionnel du mercredi 07/03/2007, tu nous as très
généreusement gratifié du message suivant:

Bonjour
Presonne n'aurait une petite idée pour ce problème?
Mon champ "ID Carte" dans la table ""tbl Carte" est au format
NuméroAuto,
alors peut-être qu'il n'aime pas les additions?
......
Merci
"Chris" a écrit dans le message de news:

Re
Bon j'ai résolu mon problème de numéro de carte manquante, mais
l'ajout d'un nouveau numéro de carte si la précédente est pleine a
fonctionné 1 fois, j'ai supprimé des leçons, la nouvelle carte, et
réessayé la manip plusieurs fois, et depuis les leçons sont toujours
ajoutées dans la même carte
que faire?
Merci
"Chris" a écrit dans le message de news:

Ok
je vais voir ça, (pitit sushi c'est que je n'ai pas le numéro de
carte dans mon formulaire, mais j'ai du l'oublier)
je vous tiens au courant
Merci encore


Chris

"ze Titi" a écrit dans le message
de news:
Hello Chris !

En fait, il y a juste une erreur de compréhension du critère:

If DCount("*", "tbl CarteActivites", "ID=" &
leContrôleDuFormulaireContenantLeNumeroDeCarte) < 10 Then
nouveauNuméroCarte =
leContrôleDuFormulaireContenantLeNumeroDeCarte
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un nouvel
identifiant de carte
End If


En ce jour mémorable du mardi 27/02/2007, tu as entrepris la
lourde tâche de taper sur ton clavier :
Bonjour
j'ai réussi à faire mon formulaire de saisie "brut", par contre
j'ai un petit
soucis avec ceci :
Dans du VBA, pour vérifier si tu dois créer une nouvelle carte ou
utiliser
une existante pour créer la nouvelle activité:

If DCount("*","tblActivitésCarte","Identifiant=" &
numéroCarte)<10 Then
nouveauNuméroCarte=numéroCarte
Else
nouveauNuméroCarte=DMax("Identifiant","tblCartes")+1 'Crée un
nouvel
identifiant de carte
End If



voici le détail de mes tables :
tbl Carte (ID, ID Adherent, Payée (Oui/non), Date)
tbl CarteActivites (ID, ID Carte, ID Activité, Date,ID Adherent)

voici le code que j'ai modifié par rapport à celui proposé :
If DCount("*", "tbl CarteActivites", "ID=" & "ID Carte") < 10
Then
nouveauNuméroCarte = "ID Carte"
Else
nouveauNuméroCarte = DMax("ID", "tbl Carte") + 1 'Crée un
nouvel
identifiant de carte
End If
et voilà le problème que je rencontre, dès que je clique sur mon
bouton, j'ai
ceci:
"Erreur d'execution'3075':
Erreur de synthaxe(operateur absent) dans l'expression 'ID=ID
Carte'."
Où me suis-je trompé?
Merci beaucoup



"Chris" a écrit dans le message de news:

Merci
encore une question, si possible.

Comment me conseillez-vous de faire pour créer mon formulaire de
saisie
J'explique ce que je souhaite :
Un formulaire basé sur une requète (elle même basée sur la table
tbl
ActivitésDetail);
où je saisis une seule fois :
La date, l'heure, l'ID Moniteur, L'ID Activite, le Niveau,
pointée o/n
et où j'ajoute un par un l'ID Adhérent, l'ID Cheval
j'ai fait un formulaire basé sur la requète rqt ActivitésDetail,
mais dès
que je change de Cavalier, la date, l'heure,et toutes les
valeurs que je ne
souhaite qu'une fois n'apparaissent plus, et c'est normal, c'est
un
enregistrement différent à chaque fois, mais je cherche le moyen
de le
faire, après, normalement je ne devrait plus vous ennuyer, faire
des
formulaires, des requètes basiques, et autres j'y arrive (tant
bien que
mal)
Merci

chris




"ze Titi" a écrit dans le
message de
news:
On progresse mais il reste des zones à problèmes...

Les activités des adhérents seront enregistrées dans la table
tblActivitésCarte. Toutes les informations sur ces activités
seront
enregistrées dans cette table (donc heure, date, IdMoniteur,
Niveau,
IdCheval). Cette table sera la table de travail. Tous tes
regroupements
partiront de là.

Concernant le numéro auto, aucun problème...

De façon générale, dans toute base de données, les
regroupements ne se
font pas dans les tables mais dans les requêtes, ta structure
doit être la
plus générale possible afin d'être toujours utilisable en cas
de
modification de fonctionnement de tes activités.
Les spécificités sont gérées dans les formulaire et les
requêtes.

Bonne continuation !

En ce jour mémorable du lundi 26/02/2007, tu as entrepris la
lourde tâche
de taper sur ton clavier :
Re;

ça se clarifie un peu,
La table tblActivitésCarte me permet de stocker tous les
enregistrements
de toutes mes cartes.
La table tblCartes me permettra d'aller chercher les activités
faites
dans la carte tblActivitésCarte.

En ce qui concerne la table tblActivités, je dois stocker mes
types
d'activités, je suppose, donc j'ai 4 types d'activités :
Ballades,
Reprises, Concours, Horse-ball
donc dans ma table tblActivités j'aurais 4 enregistrements si
j'ai bien
tout compris.
et ensuite je crée une table tblActivitésDetail qui me permet
de stocker
toutes les activités (Identifiant, IdActivité,Date,ID
moniteur,Niveau, ,
IDadhérent,ID cheval, heure, pointée(O/N))
Dois-je mettre IDadhérent1 à IDadhérent15 si j'ai 15 cavaliers
ou alors
est-ce mieux d'avoir 1 enregistrement/adhérent dans cette
table, sachant
qu'une reprise compte au max 15 cavaliers, une ballade 30
cavaliers, une
concours beaucoup de cavaliers, et horse-ball 14 cavaliers?

si j'ai bien suivi ton raisonnement, j'ai un
enregistrement/cavalier et
ainsi je les regroupes par identifiants après
Autre question, pour les champs identifiants des différentes
tables, j'ai
défini le format en NuméroAuto, ai-je bien fait?

Cela ne sera surement pas la dernière
Merci
Chris


"ze Titi" a écrit dans le
message de
news:
Si tu places un boolean dans ta table Cartes, tu résoudras le
problème
de la vérification de paiement de la dite carte.

D'après moi, ta base devrait avoir une structure du type:

tblAdhérents (Identifiant, Nom, Prénom, etc...)
tblActivités (Identifiant, Nom, etc...)
tblCartes (Identifiant, IdAdhérent, Payée (Oui/non), etc...)
tblActivitésCarte (Identifiant, IdCarte, IdActivité, Date)

Pour compter le nombre d'activités sur une carte, une requête
suffit:

SELECT COUNT(*) FROM tblActivitésCate WHERE
Identifiant=leNuméroDeCarte

Dans du VBA, pour vérifier si tu dois créer une nouvelle
carte ou
utiliser une existante pour créer la nouvelle activité:

If DCount("*","tblActivitésCarte","Identifiant=" &
numéroCarte)<10 Then
nouveauNuméroCarte=numéroCarte
Else
nouveauNuméroCarte=DMax("Identifiant","tblCartes")+1 'Crée
un nouvel
identifiant de carte
End If

Ce code va vérifier que, pour le numéro de carte
"numéroCarte", il
existe déjà 10 activités ou non
Si la carte a déjà 10 activités enregistrées, je crée un
nouvel
identifiant sinon j'utilise le numéro "NuméroCarte"

Plus clair comme ça ?

En ce jour mémorable du lundi 26/02/2007, tu as entrepris la
lourde
tâche de taper sur ton clavier :
Salut
D'abord, merci d'avoir répondu aussi vite

La base est encore à l'état de création, donc pour la
structure, ce
n'est pas
un problème de la modifier, c'est justement pour cela que
j'ai posté
ici
c'était une première ébauche
Ce que je veux faire :
Les cartes sont des cartes de 10h prépayées, donc nous
pointons
manuellement
chaque cours pour chaque adhérent sur chaque carte de 10h
tout ceci est sur papier, je veux "informatiser" tout cela,
donc je
n'en suis
qu'au stade reflexion

Il me faut une table adhérents avec toutes leurs infos
je remplis un formulaire activité1 où je choisis par des
zones de
listes les
noms des adhérents (30 max par cours), même principe pour
les activités
2 et
3
ensuite j'aimerais que lorsque je "clique" sur un bouton,
les cartes
des 10h
se remplissent automatiquement avec la date et le type
d'activité
Comme cela, si je recherche un adhérent, je peux visualiser
ses cartes
(anciennes ou en cours), savoir si cette carte a été payée
ou non, et
dans le
cas où la
personne a dépassé ses 10h, on lui recrée une nouvelle carte
(non
payée)
Donc si je prends l'exemple d'une personne qui entamme son
dernier
cours de
sa carte(payée) et qu'il en fait un autre, une nouvelle
carte est créée
et
elle sera en statut non payé
(on n'arrète pas les cours pour une carte non payée, on
s'arrange pour
que la
personne paye le plus rapidement possible).

Ce que j'avais fait, (mais ce n'est pas la bonne solution)
c'était
d'avoir
une table "Carte" comportant des champs date1...à date10 et
activité1 à
activité10
et je voulais rajouter au fur et à mesure dedans, mais
ajouter une date
dans
une table mais sans savoir quel est le champ où ajouter.....
si c'est la deuxième date à pointer, comment dire à la
requète "si
date1 est
remplie ajoute la date à la suivante"

Difficile, le principe de pointage par cartes doit
continuer, mais je
ne vois
pas trop comment gérer ceci, donc si quelqu'un peut
m'éclairer
j'espère avoir été clair dans mes explications

Merci de votre aide

"ze Titi" a écrit dans le
message de
news:

Hello Chris !

Je ne suis pas absolument persuadé de la justesse de tes
tables, au
moins
pour la table cartes...
Pour la table adhérents, d'accord... Concernant la table
"Cartes",
déjà
moins... Comment feras-tu le jour où tu passeras à une
carte à 12
dates
(par exemple) ?
Personnellement, je ferais une table cartes comportant 2
champs:
identifiant, IdAdhérent
et je rajouterais une table "Activités_carte" comportant 4
champs:
Identifiant, IdCarte, Date, IdActivité

Mais ça n'est que mon avis...

Concernant ton problème, je ne le comprends pas bien... A
partir du
moment
où tu vas aller renseigner ton formulaire cours, les cartes
vont se
remplir
automatiquement... A moins que ton formulaire cours ne
renseigne pas
ta
table Cartes mais une autre... Mais dans ce cas, tu as un
gros
problème de
structure de ta base...

Eclaire-nous !

En ce jour mémorable du vendredi 23/02/2007, tu as
entrepris la lourde
tâche de taper sur ton clavier :
Bonjour
Je réfléchis à la création d'une nouvelle base pour la
gestion d'une
association sportive
J'aurais une table contenant les adhérents.
Chaque adhérent achète une carte (table "Carte") de 10h où
sont
pointés
leurs activités (3 types d'activités possibles)
pour chaque heure pointée, il y a la date et le type
d'activité (donc
les
champs suivants:
ID adhérent date1 à date10 activité1 à activité10 dans la
table
carte)
jusque là pas de problème, pour un pointage manuel.
Mais la personne chargée de la gestion doit remplir un
formulaire
"cours"
qui contient jusqu'à 30 élèves, et l'on aimerait
qu'une fois ce formulaire rempli, les dates s'ajoutent sur
les cartes
des
élèves (et si un élève a atteint la fin de sa carte,
on lui en recrée une autre automatiquement)
Sur cela on rajoute des indépendants qui ne sont pas
pointés sur des
cartes (Nom="INDEPENDANT")
Comment serait-il possible de faire pour pointer
automatiquement (ou
en
cliquant sur un bouton) les activités sur les cartes?
ou comment contourner le problème pour arriver au même
résultat?
Merci


-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info








-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info











-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





-- Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info




















Avatar
ze Titi
Salut Chris !

Je n'ai revu que la structure, pas touché au reste. Regarde bien,
analyse bien. Il manque sûrement des données. Si tu dois les ajouter,
tiens compte de mes remarques, au pire, pose la question.

Voilou,
Bon courage !

http://cjoint.com/?dijQgzXzyr

--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info
Avatar
Chris
Merci, je regarde attentivement
@ + pour des nouvelles

Chris

"ze Titi" a écrit dans le message de news:

Salut Chris !

Je n'ai revu que la structure, pas touché au reste. Regarde bien, analyse
bien. Il manque sûrement des données. Si tu dois les ajouter, tiens compte
de mes remarques, au pire, pose la question.

Voilou,
Bon courage !

http://cjoint.com/?dijQgzXzyr

--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info




1 2