ACCESS ZONE DE TEXTE

Fermé
Renart - 7 août 2004 à 17:44
 Renart - 8 août 2004 à 22:19
Bonjour,

Dans un de mes formulaires, je souhaiterais insérer une zone de texte dans laquelle je placerais le champ d'une requête.
Dans propriété/ source contrôle, j'ai donc inscrit :
=Nomrequete!nomchamprequete

Mais, voila, qd j'affiche, j'obtiens ceci :
#Nom?

Qq aurait-il une idée?
Je précise que le nom que j'ai donné à la zone texte est différent de celui du nom du champ de la requête.

Merci de votre aide et à très bientôt j'espère.
Renart.

7 réponses

pour débuter, il vaut mieux pour ce genre de manip utiliser le générateur d'expression

décris plutôt ce que tu veux faire, ta structure de BDD, source de données du formulaire etc.
1
renart Messages postés 12 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 22 avril 2013
7 août 2004 à 21:46
Merci bcp pour ton aide oeuf.

J'ai bien sûr utilisé le générateur d'expression. J'ai aussi essayé de taper l'expression moi-même (au cas où).

Pour te résumer, voici plus où moins ce que je souhaite faire.

j'ai une table A, un formulaire F et une requete R.
J'ai un formulaire où des utilisateur vont devoir entrer des informations de type numérique dans des champs de ma table.
La plupart des champs de mon formulaire proviennent de cette table A.

Ces données sont traitées à l'intérieur de ma requete R. J'en tire
2 gros calculs.

Je souhaiterais intégrer ces 2 calculs dans mon formulaire (en gros et pour simplifier, on peut dire que c'est la somme de plusieurs champs de ma table qui se retrouvent dans mon formulaire). Ainsi, les utilisateurs lorsqu'ils encoderont les données veront le résultat final du cacul.

Si j'ai pas été très clair ou si tu souhaite plus d'info, n'hésite pas à me le dire.

Un tout grand merci.

Renart.
0
je suppose que si tu fais faire le calcul par une requête plutôt que par ton code, c'est parce que les variables de ton calcul ne sont pas des champs de ton enregistrement en cours, mais des résultats de fonctions de regroupement.

par exemple, si ta table contenait un champ date et un champ tarif, le résultat que tu veux afficher dans ton champ serait du genre d'un tarif moyen pour l'année en cours, un truc du genre.

C'est bien ça?

dans ce cas, j'ai une quesiton: ta requête renvoie-t'elle bien _un seul et unique_ enregistrement, quand tu l'exécutes directement?

sinon, si ce que tu entends par "somme de plusieurs champs de la table" c'est sans fonction de regroupement, c'est-à-dire, uniquement sur les champs de l'enregistrement en cours, là ça dépend de ce qui lie ta requête à l'enregistrement en cours dans le formulaire (faut bien qu'elle sache sur quel enregistrement travailler cette pauvre bête :-))
0
renart Messages postés 12 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 22 avril 2013
7 août 2004 à 23:07
Pour être précis, voici ce que j'essaie de faire :
Supposons que dans ma table, j'ai 3 champs : A, B et C. Ils sont tous les trois numériques (pas de date, pas de texte, que des chiffres).

Dans mon formulaire, je retrouve mes trois champs qui sont chacun suivi d'un nombre composé de 2 chiffres.
Ex. :

CHAMP A 10
CHAMP B 20
CHAMP C 25

Ma requête travaille en 2 étapes :
1)elle joint chaque champ avec son code de 2 chiffres.

EX : CHAMP A*100+10 (j'appelle ce champ G10,G20 ou G25, suivant qu'il s'agisse du champ A, B ou C);

2)J'aditionne les champs G10+G20+G30 (et je l'appelle totalcontrole).

C'est ce dernier champ que je voudrais voir apparaitre dans mon formulaire.

Ma requête renvoie bien un seul enregistrement.Pour ce qui concerne la raison de l'usage d'une requête, c'est tout simplement parce que j'ai plusieurs champs et que ça me semblait plus clair ainsi.

J'espère avoir été plus clair et ne pas t'avoir fait veiller trop tard.

Renart.
0
non non, t'inquiète, je dors rarement avant 5h du matin

1)elle joint chaque champ avec son code de 2 chiffres.

ouh là! _quel_ code?

quand tu dis

CHAMP A 10
CHAMP B 20
CHAMP C 25


10, 20 et 25, ce sont bien les valeurs des champs A, B et C dans l'enregistrement courant?

alors qu'appelles-tu le "code à deux chiffres" exactement? la valeur du champ?

EX : CHAMP A*100+10 (j'appelle ce champ G10,G20 ou G25, suivant qu'il s'agisse du champ A, B ou C);

comment ça, tu "appelles" ? tu parles de la valeur contenue dans son étiquette? ou c'est _vraiment_ le nom du champ de formulaire, lié à la colonne A, B ou C? Crées-tu ou renommes-tu les contrôles à la volée suivant la valeur d'autres contrôles?

2)J'aditionne les champs G10+G20+G30 (et je l'appelle totalcontrole).

il sort d'où G30? et qu'est-ce que c'est totalcontrole?


bon, je comprends pas trop ce que tu as fait, mais je peux te dire une chose:

si ton objectif c'est que ton formulaire affiche, pour un enregistrement contenant les données A=10, B=20 et C=25, les champs suivants:

a:   10         truc1:   1010
b:   20         truc2:   2010
c:   25         truc3:   2510

       machin: 5530


alors, fais une requête basée sur ta table, ajoute tes quatre champs calculés dans cette requête, et base ton formulaire sur cette requête.

mais je ne suis pas sûr d'avoir compris (surtout le "j'appelle ce champ G10, G20 ou G25", où on mélange nom de contrôle et valeur de champ)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci oeuf pour ton aide et excuse mes imprécisions.
Je vais essayer d'être plus clair.

En fait, je suis en train de recopier sur access un formulaire papier.
Il y a 4 raisons à cela :
1) c'est plus clair (les gens écrivent comme des cochons)
2) ça évite au personnes de faire les calculs dont je t'ai déjà parlé.
3) on utilise plus de formulaire papier puisque on tape les données directement sur ACCESS (merci pour la nature);
4) on a ainsi un inventaire sur ACCESS des formulaires encodés.

Dans ce formulaire papier, il y a des grilles. Chaque grille est identifiée par une référence de deux chiffres (j'aurais mieux fait d'éviter le terme code qui prête à confusion).
Lorsque la personne a terminé d'inscrire ces données, elle doit encore faire un calcul qui est en fait pour faire très simple :
Montant de la grille X *100+N°de référence. C'est un total de contrôle (pour tout te dire,ce formulaire papier est encodé dans un autre programme et pour être certain qu'il n'y a pas d'erreur de frappe, l'utilisateur doit après avoir encodé toute les données taper ce total de contrôle. Si le total de contrôle calculé par le programme est différent de celui de l'utilisateur, l'utilisateur ne peut pas envoyer les infos sur notre réseau).
Par exemple, si seul la grille référencée est la grille 10 et qu'elle comporte un montant de 520, j'ai alors :
520*100+10 ce qui me donne : 52010 pour le total de contrôle (les 2 derniers chiffres sont tjs le numéro de référence de la grille, comme tu peux le constater).

Dans ma table, chaque grille représente un champ différent.
Ma requête sert à calculer le total de contrôle.
G10, G20 et G25 (G30, c'est une erreur) c'est simplement le nom du champ (G pour grille et le numéro c'est le numéro de référence de la grille sur le formulaire papier).
Evidemment, lorsque la requête a terminé son calcul, il faut qu'il s'affiche sur le formulaire pour que l'utilisateur en prenne connaissance. Le but du jeu étant de laisser le soin à l'ordi de calculer le total de contrôle.


J'espère avoir pu être clair et je te remercie du temps que tu consacres à mon problème.
0
je pense que tu n'as pas fait d'analyse avant de te mettre sur la machine. C'est indispensable.

4) on a ainsi un inventaire sur ACCESS des formulaires encodés.

un "inventaire" de "formulaires" "encodés"?

ouh là là là là 8-|

bon, je suppose que tu veux dire que votre base de données contient une table, dont les colonnes contiennent les valeurs des champs de ton formulaire papier.

Déjà, on va décrire un peu mieux ton formulaire papier. tu dis:

Dans ce formulaire papier, il y a des grilles. Chaque grille est identifiée par une référence de deux chiffres

des grilles? des grilles de combien de lignes et combien de colonnes? que contiennent ces grilles? quel calcul éventuel est fait dessus? et _combien_ de grilles par formulaire papier?

Cette "référence" (dans le contexte ce n'est pas plus clair que "code"), d'où sort-elle? est-elle par exemple toujours la même pour la première grille de chaque formulaire? est-elle variable? selon quoi varie-t-elle?

Par ailleurs, s'il y a des grilles sur ton formulaire papier, y a t'il aussi des champs? on dirait que chaque "référence" de grille est en fait un champ!

il faut tout reprendre à zéro, et sur papier cette fois. Quand ce sera clair sur papier, tu pourras te mettre sur Access.

Je t'invite à scanner deux ou trois (mais pas un en tout cas) formulaires papiers et les mettre en ligne pour qu'on puisse mieux voir de quoi il s'agit.

Tel que tu le décris, tu as un formulaire avec pour champs, son identifiant (visible ou non, peu importe), les champs "référence" associés à chaque grille, et tes grilles sont des sous formulaires. Le champ "référence" serait donc l'identifiant d'un enregistrement de la table source de son sous-formulaire

tu devrais consulter l'application exemple livrée avec Access pour comprendre son fonctionnement et la façon de l'exploiter je pense. Ou confier le travail à un analyste programmeur.
0
Merci bcp pour ton aide.

Je vais me plancher encore sur le problème.

Renart.
0