Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/07/2011, 22h41   #1
Invité de passage
 
Inscription : juillet 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 18
Points : 0
Points : 0
Par défaut Problème Calcul Contrôle Formulaire

Bonjour à tous,

Je suis en formation d'informatique (niveau technitien BAC+2), et il y a quelques semaines nous avons eu des cours sur Access SQL, cela m'a donné envie de créer ma propre base de donnée.

Pour situer les choses, il y a quelques mois j'ai créé un comparateur d'objet pour World Of Warcraft sous Excel, s'était plutot brouillons mais tout était dynamique et parfait, hélas aucune information n'étant stocké, tout était volatile.
Je n'y joue plus depuis plusieurs mois maintenant, mais l'envie de reprendre ce fait sentir, et avec elle, une envie de faire une Base Access.

Voici donc le topo, j'ai trois tables : Objet, Emplacement, et Apport.
Un formulaire qui rassemble toutes les informations de l'objet.
Et des requêtes vides xD puisque je n'arrive donc pas à faire ce que je veux.

La Table "Apport" possède en clé primaire un champs "Date d'Enregistrement" en liaisons avec la Table "Objet" qui possède également ce champs, c'est le seul moyen que j'ai trouvé pour lié ces deux tables, sans quoi elles ne voulaient pas travailler ensemble, j'ignore pourquoi.

Dans le Formulaire, deux chôses ce cotoie, les statistiques des "Objets" et l'"Apport" des Statistique, hors, visiblement, c'est incompatible, rien n'est sauvegardé, il y a des messages d'erreur de partout dès qu'on rentre quelque chose dans les deux tables (sur le formulaire).
De plus, la cellule "Base Toucher" affiche des "#########", il n'existe aucune différence entre elle et les autres, j'ignore la raison de ce phénomène mystique.

Mais le vrai soucis, c'est d'arriver à additionner les cellules "X" (je parle de cellule, car il s'agis de l'intersection des champs et des enregistrement, mais je sais que ce n'est pas dans la terminologie) dans chacun enregistrement de manière séparée.
"X" correspondant par exemple à "Base Endurance" + "Chasse Endurance N" + "Bonus Chasse Endurance"
Dois-je me servir d'une requête pour faire cela ? (Oui, mes cours ne m'ont pas vraiment aidé...)
Ou est-ce que je peux faire un calcul dans une cellule comme sous Excel ? (Je n'y suis pas arrivé)

Voila, dans l'espoir que ce projet un peu atypique pourra réveiller des envies de challenge à certain, malgrès que cela reste pour le moins basique je suppose .




Voici les objets sous DropBox, modifiable par tout le monde il me semble :

http://dl.dropbox.com/u/21043222/Pro...oW_Stuff.accdb

http://dl.dropbox.com/u/21043222/Pro...W_Stuff.laccdb
Nemesis666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 05h18   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Bonjour,

Cellule d'un formulaire = controle.

Tu peux faire des calculs dans un controle. Il suffit de la mettre dans la propriété Source du controle.

Code :
=controle1 + controle2 - Controle3
Tu peux également l'utiliser dans la requete source de ton formulaire. comme ceci.

Code :
1
2
Select  Base_Endurance, Chasse_Endurance_N, Bonus_Chasse_Endurance,
  Base_Endurance + Chasse_Endurance_N + Bonus_Chasse_Endurance As moncalcul FROM maTable;
Bref ! Beaucoup de méthode pour le même résultat. Avec quand même une préférence pour la 2ème solution car ne nécessitant pas de code de recalcul.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 18h57   #3
Invité de passage
 
Inscription : juillet 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 18
Points : 0
Points : 0
Je vais tester tout cela, merci bien .

EDIT : Bien, pour la première solution, il m'affiche un "#Nom ?".
Je test la seconde solution.

EDIT2 : Et concernant la requête, elle ne fonctionne tout simplement pas, j'ai mis à jour dans la DropBox.

http://dl.dropbox.com/u/21043222/Pro...oW_Stuff.accdb
Nemesis666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 20h51   #4
Membre émérite
 
Conseil + Formation
Inscription : février 2010
Messages : 583
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Conseil + Formation

Informations forums :
Inscription : février 2010
Messages : 583
Points : 885
Points : 885
Bonjour
Citation:
Envoyé par Nemesis666 Voir le message
Je vais tester tout cela, merci bien .

EDIT : Bien, pour la première solution, il m'affiche un "#Nom ?"
As-tu bien remplacé par les noms de tes contrôles ?
78chris est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 20h58   #5
Invité de passage
 
Inscription : juillet 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 18
Points : 0
Points : 0
Hmmmm j'ai du mal à saisir la question.

La Propriété Source de Contrôle de de la Zone de Texte dans le formulaire est la suivante :

Code :
=[Table-Objet]![Base Endurance]+[Table-Objet]![Chasse Endurance 1]+[Table-Objet]![Chasse Endurance 2]+[Table-Objet]![Chasse Endurance 3]+[Table-Objet]![Bonus Chasse Endurance]
Le nom des Champs a été respecté, par contre le "Nom des Contrôles" ça je ne sais pas, les contrôles portent des noms comme les cellules d'un tableur ?

EDIT : Okay je vien de comprendre le soucis, ce sont les noms de contrôle qu'il faut mettre et non des champs.
Cela dit je n'ai pas réussi.
Nemesis666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 23h49   #6
Membre émérite
 
Conseil + Formation
Inscription : février 2010
Messages : 583
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Conseil + Formation

Informations forums :
Inscription : février 2010
Messages : 583
Points : 885
Points : 885
Re

En principe les contrôles ont le même nom que les champs (si tu as construit ton formulaire en partant de la table) mais il ne faut pas mettre le nom de la table devant. Dans la mesure où tous les champs sont dans le même formulaire il n'est pas obligatoire de faire précéder leur nom du nom du formulaire car implicite.

Essayes d'ajouter les champs un par un dans ta formule pour vérifier où ça coince.
78chris est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 05h15   #7
Invité de passage
 
Inscription : juillet 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 18
Points : 0
Points : 0
Le soucis survient dès que je place le symbole "+" pour additionner, avec ou sans espace (les espaces disparaissent tout seul d'ailleurs).

Ainsi :
fonctionne, mais :
Code :
=[Base Endurance] + [Chasse Endurance 1]
ne fonctionne déjà plus, une idée ?
Nemesis666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 08h52   #8
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Plusieurs idées :

Mal écrit,
Pas placé dans la bonne propriété,
Champ n'existe pas,

Citation:
(les espaces disparaissent tout seul d'ailleurs).
???

Citation:
Le nom des Champs a été respecté, par contre le "Nom des Contrôles" ça je ne sais pas, les contrôles portent des noms comme les cellules d'un tableur ?
Un petit ouvrage de référence te ferais du bien. Manière d'acquérir au moins les bases.

Citation:
...DropBox
C'est quoi ? une TextBox ? Pourquoi utiliser une TextBox pour afficher le résultat d'un calcul ?

Avec ce que tu nous donnes comme infos nous risquons d'y passer du temps.
Ma boule de cristal est en vacance, comme moi bientôt.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 13h11   #9
Invité de passage
 
Inscription : juillet 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 18
Points : 0
Points : 0
DropBox est un utilitaire de partage de donnée communautaire (comme GoogleDoc, en différent), en d'autres terme, je vous fournis mon ACCDB pour que vous y jettiez un coup d'oeil.

Bon, j'acquière les bases sur le tât, quelques cours vidéo OnLine, deux trois petites astuces via Forum, et hop roulez jeunesse .

Donc je réexplique.

Dans la propriété "Source de Contrôle" lorsque j'écris :

Code :
=[Truk Muche] + [Machin Muche]
Ca ce transforme en :

Code :
=[Truk Muche]+[Machin Muche]
C'est ici que les espaces disparaissents.

Donc quel serais le soucis à votre avis ?

Dans l'exemple c'est écris :

Code :
=[Champs 1] + [Champs 2] - [Champs 3]
Donc je ne vois pas trop où j'aurais fauté.
Nemesis666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 10h27   #10
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Bonjour,

Pour ces espaces c'est normal ça n'a aucune incidence à cause des crochets.

Code :
=Champ1 + champ2 - champ3
Ces 3 noms sont-ils des noms de controles ou des noms de champs ?
Si il s'agit de noms de champs qui ne représentent pas un controle (controle et champ porte le même nom) il faut mettre le nom de la table avant.

Je ne vois vraiment pas pourquoi tu ne mets pas cette expression dans la source de ton formulaire ?
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 15h33   #11
Invité de passage
 
Inscription : juillet 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 18
Points : 0
Points : 0
Je pense que ces noms sont ceux des champs, par contre, j'ignore si les contrôles porte le même (faut-il le configurer quelque part ?).

Tu a regardé mon ACCDB ?
Nemesis666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 15h40   #12
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Non absolument pas regardé. Je verrais ça ce soir si j'ai un peu de temps.

Le nommage ne se fait pas à la légère.
Suivant le type de conception (qui serait trop long à détailler ici) on utilise soit un nom différent entre le champ et le controle (10% des cas et surtout pour les gens qui ont une très grande connaissance des mécanismes d'ACCESS).
Soit le même pour le champ et le controle qui les représente.

Pour le savoir c'est simple :
Propriété Nom = Propriété Source Contrôle

Si c'est le même pas besoin de préfixer avec le nom de la table. Sinon il faut préfixer.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 13h50   #13
Invité de passage
 
Inscription : juillet 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 18
Points : 0
Points : 0
Hmmmmm je crois que je vien de comprendre.

On ne parle de Contrôle que lorsqu'on tire une information d'un Enregistrement et d'un Champs et uniquement lorsqu'on l'exploite dans un Formulaire (et un Etat ?), je m'acharnais à chercher dans la Table...

Donc effectivement, les Contrôles de mon Formulaire porte des noms du type "Texte 1", "Texte 2", etc...
Je renomme tout et je vous dit ce que ça donne.

Le calcul fonctionne ! Victoire !

EDIT : Bon, dès que je met plus de 3 expressions ça ce passe plus.......

EDIT 2 : J'ai mis "0" en valeurs par défaut, et "après" avoir entré au moins une valent dans un ensemble (il existe deux ensembles, un pour chaque table), ça met des zéro partout et les calculs fonctionnent parfaitement.
Je confirme donc que j'ai réussi et que ça marche.
Nemesis666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 16h38   #14
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Super !
Tu peux donc cliquer sur Résolu.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 18h08   #15
Invité de passage
 
Inscription : juillet 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 18
Points : 0
Points : 0
Eeeeeh pas encore !
Ne criont pas victoire trop vite :p j'ai eu un soucis et heureusement que j'utilise DropBox pour récupérer des versions antérieurs :o !
Nemesis666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 19h32   #16
Invité de passage
 
Inscription : juillet 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 18
Points : 0
Points : 0
Alors, j'ai eu un bug dans mon formulaire :

J'ai supprimé deux Champs dans une de mes tables, et à l'ouverture de mon formulaire il me demande des valeurs pour ces champs manquant (ils n'y a pas de contrôles dans le formulaire, mais il persiste à les réclâmer).

Et pas moyen de suprimer cette entrée :o ...

Une idée ?
Nemesis666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 08h42   #17
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Et dans la source du formulaire ?
Dans une expression quelconque ?

A chaque problème son fil de discussion (cf les règles), sinon ça vite devient incompréhensible.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 13h29   #18
Invité de passage
 
Inscription : juillet 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 18
Points : 0
Points : 0
Effectivement, bien, on dirais que tout fonctionne correctement, je vais donc clore ce topic.

Je remercie tout les participants qui m'ont permis de beaucoup progresser et de mener à bien ce projet atypique.

EDIT : Impossible d'EDIT mon premier post :o !
Nemesis666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h16.


 
 
 
 
Partenaires

Hébergement Web