< verification d'enregistrement access | Forum des BTS

verification d'enregistrement access

El Bero

New Member
Bonsoir à tous,

Je réalise un formulaire en access et j'aimerai réaliser un control sur un renregistrement :
Par exemple, la secretaire encode un nom dans mons formulaire et j'aimerai que lorsqu'elle passe au champs suivant, une vérification soit réalisée afin de voir si cette personne n'existe pas déja dans la table.

Est ce que cette manipulation est possible avec un formulaire Access ?

Merci de vous pencher sur mon probleme

El Bero de Belgique
 
El Bero a dit:
Par exemple, la secretaire encode un nom dans mons formulaire et j'aimerai que lorsqu'elle passe au champs suivant, une vérification soit réalisée afin de voir si cette personne n'existe pas déja dans la table.

Est ce que cette manipulation est possible avec un formulaire Access ?

Si l'objectif est d'empecher la saisie, il y a un moyen simple. C'est de déclarer le champ comme étant indexé sans doublon et le tour est joué. Impossible de saisir deux fois la même valeur
 
formulaire access

Bonjour,

Merci de vous pencher sur mon probleme.
On peu imaginer avoir Pierre Dupont de Mons et Pierre Dupont de Binche et demander une confirmation d'enregistrement.
Le but aussi est que une personne inscrite dans la table peut s'inscrire à plusieurs activité, la secretaire ne doit plus encoder les données pour cette personne, il lui suffit de selectionner l'activité dans une liste de choix.

Encore merci pour votre aide

El Bero de Belgique
 
Re: formulaire access

El Bero a dit:
On peu imaginer avoir Pierre Dupont de Mons et Pierre Dupont de Binche et demander une confirmation d'enregistrement.
Le but aussi est que une personne inscrite dans la table peut s'inscrire à plusieurs activité, la secretaire ne doit plus encoder les données pour cette personne, il lui suffit de selectionner l'activité dans une liste de choix.

Comment va faire la secrétaire pour savoir s'il s'agit du dupont de Binche ou de Mons ?

Pour mieux répondre, il faudrait connaître le modèle mis en place.
 
controle

On peut imaginer ,que lorsque la secretaire encode une personne qui est déja présente dans la table, que les zones de texte à encoder soient alimentées automatiquement. Il ne lui resterait plus qu'a selectionner l'activité pour réaliser l'inscription.

Merci ++++

El bero
 
Re: controle

El Bero a dit:
On peut imaginer ,que lorsque la secretaire encode une personne qui est déja présente dans la table, que les zones de texte à encoder soient alimentées automatiquement. Il ne lui resterait plus qu'a selectionner l'activité pour réaliser l'inscription.

Dans ce cas là, il faut créer une liste modifiable qui affichera la liste des inscrits. Une fois le choix fait, toutes les infos sur l'adhérent apparaitrons.
 
Modélisation du SGBDR

Salut,

J'aimerai bien comprendre le fonctionnement de ta base de données. :twisted:

Doit-on comprendre qu'une inscription concerne une et une seule activité et que pour cette activité l'on souhaite inscrire plusieurs participants?

@+
 
Formulaire

Bonjour,

Je suis complétement planté mais je suis proche de ce que je désire.
Je laisse tomber la partie inscription pour la moment pour me consacrer à la partie : activités - formateurs - dates_activités (3 tables).

Je réalise un formulaire avec ces 3 tables, si je choisi "formulaire avec sous formulaire, cela fonctionne mais la présentation ne me plait pas.
Lorsque je choisi "Formulaires attachés" , la présentation me convient mais lorsque je veux ajouter une activité pour un formateur, cela ne fonctionne pas, je suis désespéré ...

J'ai publié mon fichier "creas.mdb" à l'adresse suivante :
http://www.nicodespiennes.be/creas.mdb

Si vous pouviez m'aider à résoudre (et à comprendre se probleme), cela me soulagerai beaucoup.

Donc le principe est : on encode un nouveau formateur, on click sur le bouton "Activités" et on doit pouvoir encoder des activités ainsi que les dates (le nombre de date est variable)

Voila,

Encore milles merci à vous tous....

El bero planté
 
Re: Formulaire

El Bero a dit:
Si vous pouviez m'aider à résoudre (et à comprendre se probleme), cela me soulagerai beaucoup.

A mon avis, ton système est mal conçu, en ce qui concerne ces 3 tables. Voilà comment je vois la chose. Tu as deux entités activités et formateurs. L'association qu'il y a entre les deux est Formateur anime activité.

L'association sera représentée par ta table dates_activité. Cette table sera en relation avec les deux autres, mais aucune relation entre formateur et activité
 
Re: Formulaire

patrice084 a dit:
El Bero a dit:
Si vous pouviez m'aider à résoudre (et à comprendre se probleme), cela me soulagerai beaucoup.

A mon avis, ton système est mal conçu, en ce qui concerne ces 3 tables. Voilà comment je vois la chose. Tu as deux entités activités et formateurs. L'association qu'il y a entre les deux est Formateur anime activité.



L'association sera représentée par ta table dates_activité. Cette table sera en relation avec les deux autres, mais aucune relation entre formateur et activité

Salut,

Effectivement, il y quelque chose à modifier dans la modélisation des 3 tables.
Réflexion :

-> Un formateur anime-t-il une ou plusieurs activités à des dates différentes?
-> Une activité est-elle animée par un ou plusieurs animateurs à des dates différentes?

Si on répondait par oui à ces 2 questions, on aurait la présence d'une association de type ternaire. C'est-à-dire que les tables activité, formateur et date seraient connectées à l'association animer.

ANIMER (N°acti, N°Form, N°Date)

Ou bien, on garde uniquement les tables activité et formateur que l'on connecterait à l'association animer qui elle porterait la propriété date_activité.

ANIMER (N°acti, N°Form, Date)

@+
 
Bonjour,

Effectivement, un formateur dispense plusieurs activités sur une année
soit un séminaire(1 jour), soit un atelier(3 jour), soit un colloque (1 jour).

Une activité peut etre animée par un formateur (ou plusieurs) a des dates différentes

Je vais donc modifier mes entités selon le modèle :

ANIMER (N°acti, N°Form, N°Date)

Je vous tiens au courant

Je vous remercie pour votre disponibilité et a trés bientôt
 
Relations

Re bonjour,

Voila, j'ai maintenant 4 tables :

- activités(num_activité,designation, ...)
- formateurs (num_formateur, nom, prenom, ...)
- dates (num_date,date)
- animer (num_animation,num_activite,num_formateur,num_date)

La table "animer" est au centre des trois autres tables.

Pour encoder, je dois réaliser un formulaire avec des sous formulaire, mais quelles tables selectionner ? toutes les 4 ou les 3 tables (formateurs,activites et dates)sans prendre la animer ??

Je suis un peu perdu !!

Encore milles merci à vous

El bero de Belgique
 
Re: Relations

El Bero a dit:
Re bonjour,

Voila, j'ai maintenant 4 tables :

- activités(num_activité,designation, ...)
- formateurs (num_formateur, nom, prenom, ...)
- dates (num_date,date)
- animer (num_animation,num_activite,num_formateur,num_date)

La table "animer" est au centre des trois autres tables.

Pour encoder, je dois réaliser un formulaire avec des sous formulaire, mais quelles tables selectionner ? toutes les 4 ou les 3 tables (formateurs,activites et dates)sans prendre la animer ??

Je suis un peu perdu !!

Encore milles merci à vous

El bero de Belgique
Bonjour,

- activité (num_activité, designation, ...)
- formateur (num_formateur, nom, prenom, ...)
- animer (num_animation, num_activite#, num_formateur#, date)

Je vous conseille plutôt de supprimer la table dates.

Concernant l'élaboration du formulaire, il faut utiliser la table animer seulement.

Pour "encoder" vos données activité, formateur de façon rapide et sure, je vous conseille d'affecter pour num_activité# et num_formateur# une liste de choix de type "zone de liste modifiable". Pour chaque zone de liste modifiable d'affecter un "contenu" avec le générateur d'expression SQL.

Ainsi lorsque vous allez créer votre formulaire à l'aide ou non de l'assistant vos contrôles activités et formateurs seront marqués d'une zone de liste.

Quant au champ date, il suffira simplement de saisir la valeur.

@+
 
Formulaires

Re bonjour,

Vous allez me prendre pour un lourdau, mais j'ai suivi vos conseils (encore merci) mais lorsque je veux réaliser mon formulaire sur base
de la table "animer" je n'ai que les champs num_animation, num_activite,num_formateur et date.
Je dois pouvoir encoder un nouveau formateur en meme temps qu'une nouvelle activité et de pouvoir encoder plusieurs dates pour celle-ci.

J'aimerai avoir les coordonnées du formateur, les coordonnées de l'activité ainsi que la possibilité d'encoder des dates.

Merci milles fois et excusez moi d'etre insistant de la sorte mais je tourne en rond depuis pas mal de temps, mais grace à vous, je progresse...

Merci

El Bero de Belgique
 
Re: Formulaires

El Bero a dit:
Re bonjour,

Vous allez me prendre pour un :shock: lourdau :?: :lol: , mais j'ai suivi vos conseils (encore merci) mais lorsque je veux réaliser mon formulaire sur base
de la table "animer" je n'ai que les champs num_animation, num_activite,num_formateur et date.
Je dois pouvoir encoder un nouveau formateur en meme temps qu'une nouvelle activité et de pouvoir encoder plusieurs dates pour celle-ci.

J'aimerai avoir les coordonnées du formateur, les coordonnées de l'activité ainsi que la possibilité d'encoder des dates.

Merci milles fois et excusez moi d'etre insistant de la sorte mais je tourne en rond depuis pas mal de temps, mais grace à vous, je progresse...

Merci

El Bero de Belgique

Pas de panique,

Il faut dans ce cas créer un requête multiple avec les tables Activité, Formateur et Animer.

Dans la grille d'interrogation, tu insères dans l'ordre qui suit :
-> num_animation et num_activité# (table Animer)
-> type jusqu'à animation (table (Activité)
-> num_formateur# (table Animer)
-> prénom jusqu'à courriel (table Formateur)

Tu crées ton formulaire à partir de cette requête.

Maintenant concernant la problématique de vouloir "encoder" une nouvelle activité ou nouveau formateur, rien de plus simple, il faut VBA.

Dans ton formulaire Animer, en mode création, tu ouvres la fenêtre des propriétés de la zone de liste num_activité#, tu vas sur l'évènement absence de liste et tu choisis générateur de code et tu insères le code suivant :

Private Sub num_activité__NotInList(NewData As String, Response As Integer)
If MsgBox("Voulez-vous ajouter la valeur " & NewData & " ?", _
vbYesNo + vbQuestion) = vbYes Then
CurrentDb.Execute "INSERT INTO activités(designation) " _
& "SELECT """ & NewData & """ ;"
Response = acDataErrAdded
Else
Response = acDataErrContinue
Cancel = True
End If
End Sub

ensuite, même technique pour la zone de liste num_formateur# et tu insères le code suivant :

Private Sub num_formateur__NotInList(NewData As String, Response As Integer)
If MsgBox("Voulez-vous ajouter la valeur " & NewData & " ?", _
vbYesNo + vbQuestion) = vbYes Then
CurrentDb.Execute "INSERT INTO formateurs(nom) " _
& "SELECT """ & NewData & """ ;"
Response = acDataErrAdded
Else
Response = acDataErrContinue
Cancel = True
End If
End Sub

Ces 2 codes vont te permettre de saisir une nouvelle valeur dans la zone de liste considérée avec confirmation d'ajout de la nouvelle valeur et te permettra aussi de saisir des valeurs dans les zones de texte liées à la zone de liste considérée.

Pour info et concernant le code :

Private Sub num_formateur_ -> num_formateur_ = num_formateur# (nom de ta zone de liste).
Le symbole # n'est pas reconnu par VBA et est remplacé automatiquement par _

CurrentDb.Execute "INSERT INTO formateurs(nom)
formateurs = nom de la table dans laquelle l'ajout se fait
(nom) = nom du champ à partir duquel on procède à l'ajout

Alors attention, si tu changes nom de table ou nom de champ, penser à modifier aussi le code. :mrgreen:

@+
 
Retour
Haut