Pages: 1
- Sujet précédent - [ACCESS 2003] Problème d'export de donnée d'un formulaire -> table - Sujet suivant
#1 Mon 30 August 2010 10:26
- geofL
- Juste Inscrit !
- Date d'inscription: 9 Jul 2009
- Messages: 6
[ACCESS 2003] Problème d'export de donnée d'un formulaire -> table
Bonjour,
Je me sers d'un formulaire pour mes relevés terrains. Celui-ci est organisé de cette façon:
* Deux grandes thématiques: Intérêt et Faisabilité,
* Chaque thématique est constituée de 5 zones à liste déroulante comportant chacune uniquement 3 choix,
* Chacun des choix possibles correspond à une note (0, 0.5, ou 1) qui renseigne une case du même formulaire via un code VBA,
* Ces notes sont additionnées dans une case permettant une évaluation sur 5 de la thématique traitée,
* Enfin les deux notes sur 5 concernant la Faisabilité, et l'Intérêt sont additionnée dans une case "note globale" sur 10.
Tout fonctionne bien au niveau du formulaire, mais j'ai du mal à trouver une méthode pour automatiquement remplir les colonnes de la table de ma base concernant les notes sur 5 pour les thématiques, ainsi que la note globale sur 10.
Le seul système que j'ai trouvé est un bouton qu'il faut cliquer une fois chaque fiche remplie ce qui n'est pas pratique du tout. Voici la code affilié au bouton:
Code:
'Intégration des notes dans la table access Private Sub Commande668_Click() Dim GLOB As Variant Dim Upt_faisabilite As Variant Dim Upt_interet As Variant GLOB = Forms![Formulaire_de_saisie]![LNOTE_GLOBALE] Me.[NOTE_GLOBALE] = GLOB Me.Refresh Upt_faisabilite = Forms![Formulaire_de_saisie]![LNOTE_FAISABILITE] Me.[NOTE_FAISABILITE] = Upt_faisabilite Me.Refresh Upt_interet = Forms![Formulaire_de_saisie]![LNOTE_INTERET] Me.[NOTE_INTERET] = Upt_interet Me.Refresh End Sub
Avec cela ça fonctionne, ma table est bien remplie mais je cherche à faire la même chose de façon automatique.
J'aimerai que dès qu'un changement intervient dans ma note globale, les 3 champs de ma table soit mis à jour.
J'ai essayé en jouant sur les évènements de ma case NOTE GLOBALE, sans succès.
Quelques autres informations concernant les champs du formulaire:
Nom: LNOTE_GLOBALE
Source contrôle: =[LNOTE_FAISABILITE]+[LNOTE_INTERET]
Nom: LNOTE_FAISABILITE
Source contrôle: =[LNOTE_VITESSE]+[LNOTE_PENTE]+[LNOTE_RESTRICT]+[LNOTE_FONCIER]+[LNOTE_TRAFIC]
Nom: LNOTE_INTERET
Source contrôle: =[LNOTE_AMENAG]+[LNOTE_POLE]+[LNOTE_TYPE_POLE]+[LNOTE_TYPE_USAGER]+[LNOTE_SECU]
Merci d'avance pour vos réponses.
Hors ligne
#2 Mon 30 August 2010 10:41
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3199
- Site web
Re: [ACCESS 2003] Problème d'export de donnée d'un formulaire -> table
Bonjour,
Je ne suis pas sur d'avoir tout compris, car vous ne décrivez pas le contenu de vos tables. Et il me semble que le pb ce situe à ce niveau.
Il faut stocker chaque note (0,0.5,1) pour chaque ?? et ensuite faire une requête calculée pour obtenir les notes sur 5 et celle sur 10.
Si vous ne souhaitez enregistrer que les notes sur cinq et sur 10 il faut jouer sur l'événement mis à jour de chaque contrôle renseignant la note (0,0.5,1). Mais d'un point de vue conception c'est pas joli !
A+
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#3 Mon 30 August 2010 10:46
- geofL
- Juste Inscrit !
- Date d'inscription: 9 Jul 2009
- Messages: 6
Re: [ACCESS 2003] Problème d'export de donnée d'un formulaire -> table
Bonjour,
En fait, il n'y a qu'une seule table et le formulaire n'est pas construit sur une requête, mais via la liaison entre le nom de la case du formulaire, et celui de la colonne de la table.
En fait, tout se passe bien au niveau des calculs, le stockage des notes intermédiaires aussi se passe bien, c'est au niveau des notes thématiques et de la note finale que ça coince.
Le code lié au bouton fonctionne mais je n'arrive pas à trouver le moyen de faire la même chose de façon automatique.
** EDIT **
Finalement je suis passé par une procédure évènementielle sur le formulaire même.
En me servant de l'évènement Avant MAJ, et en calant mon code sans les refresh ce qui donne:
Code:
Private Sub Form_BeforeUpdate(Cancel As Integer) Dim GLOB As Variant Dim Upt_faisabilite As Variant Dim Upt_interet As Variant GLOB = Forms![Formulaire_de_saisie]![LNOTE_GLOBALE] Me.[NOTE_GLOBALE] = GLOB Upt_faisabilite = Forms![Formulaire_de_saisie]![LNOTE_FAISABILITE] Me.[NOTE_FAISABILITE] = Upt_faisabilite Upt_interet = Forms![Formulaire_de_saisie]![LNOTE_INTERET] Me.[NOTE_INTERET] = Upt_interet End Sub
Et pour le moment cela fonctionne.
Dernière modification par geofL (Mon 30 August 2010 14:23)
Hors ligne
Pages: 1
- Sujet précédent - [ACCESS 2003] Problème d'export de donnée d'un formulaire -> table - Sujet suivant