Bonsoir à toutes et tous
Débutant avec access, je cherche comment compter le nombre d'enregistrement d'une table répondant a un critère d'un champs de cette même table
Comment doit-je faire ?
En vous remerciant d' avance
Alain
Bonsoir à toutes et tous
Débutant avec access, je cherche comment compter le nombre d'enregistrement d'une table répondant a un critère d'un champs de cette même table
Comment doit-je faire ?
En vous remerciant d' avance
Alain
Bonsoir et Bienvenue;
Tu peux utiliser une fonction de domaine :
Attention aux variantes selon texte ou numérique
Code : Sélectionner tout - Visualiser dans une fenêtre à part =CpteDom("*";"TaTable";"[TonChamp]='TonCritère'")
Cordialement.
Bonsoir francishop
Merci de te penché sur mon problème mais je doit surement m'y prendre mal car cela marche pas
J' utilise Access 2007 et la valeur cherchée doit apparaite dans un champs texte d'un formulaire.
Ou doij-je mettre le code, dans créé expression ou pas ?
Bonsoir,
Tu places le code proposé dans la propriété Source contrôle de ta zone de texte.
Bon courage et @+
Bonsoir Mahefasoa, RE le forum
Mercis a toi mais cela ne marche pas, en mode formulaire, mon champs texte affiche "#Erreur".
J'explique
J'ai une table 1 avec les champs "Nom","Prénom","Copain", ect....
Dans une autre table 2, la table"Copain", les champs "Moi","Toi","Lui","Elle",Ect..
Je voudrais dans un formulaire, avoir des champs texte qui m"affiche comme etiquette :"Moi" et dans le champs, la somme des champs "nom" de la table 1 qui on la valeur "Moi" de la table 2 dans le champs copain de la table 1 et ainsi de suite pour "Toi" "Elle" Ect...
J'espère avoir été assez clair dans mon explication
Cordialement
Alain
Bonjour;
Ceci est anormal. Tu créé un formulaire vierge. Tu y "colles" un champ avec pour source un des exemples.Envoyé par wachoo31
C'est parti pour les fonctions de domaines!
Chaque fonction de domaine comprend 3 arguments sous forme :
FonctionDeDomaine(expression;Table_ou_Requête;Filtre)
.-Expression = valeur à traiter-->En général un nom de champ entre crochets. Mais il peut aussi s'agir d'autres fonctions VBA
.-Table_ou_Requête
.-Filtre--> optionnel permet de sélectionner avant d'appliquer le calcul.
Ici on ne va pas faire dans le détail. On va compter la table entièreLa "même en couleur", mais cette fois j'indique un champ texte
Code : Sélectionner tout - Visualiser dans une fenêtre à part =CpteDom("*";"tbl_CoefVendu")La "même en couleur", mais cette fois j'indique un champ numérique
Code : Sélectionner tout - Visualiser dans une fenêtre à part =CpteDom("[Annee]";"tbl_CoefVendu")On note aucun changement . On encadre de guillemets l'expression
Code : Sélectionner tout - Visualiser dans une fenêtre à part =CpteDom("[N°]";"tbl_CoefVendu")
Il en va autrement pour le filtre selon Texte,Numérique,date
Quelques exemples. A toi de voir la différence.
Texte(Attention-->Ici 1980 est sous forme Texte..)Numérique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part =CpteDom("*";"tbl_CoefVendu";"Annee='1980'")Date :
Code : Sélectionner tout - Visualiser dans une fenêtre à part =CpteDom("*";"tbl_CoefVendu";"IndiceHop>3")A toi de remplacer la table et les champs. Mais quoi qu'il arrive tu dois obtenir le résultat en partant d'un formulaire sans source ou avec source.
Code : Sélectionner tout - Visualiser dans une fenêtre à part =CpteDom("*";"tbl_CoefVendu";"Annee2>#01/01/1995#")
Ceci est une première étape... qui te servira certainement... En dernier!
Je n'ai pas tout compris à ta demande, mais il me semble qu'il va falloir décomposer dans une requête pour un premier résultat. Puis procéder à quelque regroupement.
Mon incompréhension provient, en partie, du fait qu'il me semble qu'il y a mélange dans ton descriptif entre colonne et champ de table.
Cordialement:"Moi" et dans le champs, la somme des champs "nom" de la table 1 qui on la valeur "Moi" de la table 2 dans le champs copain de la table 1 et ainsi de suite pour "Toi" "Elle" Ect...
Ps: Tu peux faire une recherche dans la faq sur les fonctions de domaine
Re Bonsoir à toi francishop,
Vraiment sympa de te penché sur mon problème, je débute avec acces et encore beaucoups d'inconnues pour moi
J'ai bien suivi t'es explications, je crois mais sa marche pas
Je me permet de joindre une petite base en exemples pour mieux expliquer mon soucis, enfin je crois que comme cela tu comprendra mon charabia.....
Encore un grand merci à toi
Bonjour;
C'est gentil de faire cette précision dans une étiquette de ton envoi. Mais il faut éviter fond noir avec police idem.. On a du mal à voir!Voilà, ce champs devrait indiqué la valeur 2 vu que dans la table 1 il y a 2 enregistrement
avec la valeur "Moi" et il me donne #erreur ?
Tu fais une recherche sur une liste de choix avec 2 colonnes dont une masquée
Access ne tient compte que de la première colonne. Et ta première colonne c'est du numérique. Dans les requêtes on ne peut, comme dans VBA, préciser .Column(1). Ce qui indique : Ne prends pas la première colonne(0) mais la suivante.
C'est pourquoi tu fais une requête genre :Et à partir de là tu travailles directement sur le champ qui t'intéresses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT Table1.N°, Table1.Nom, Table1.Prénom, Table2.Copain, Table2.N° AS NumTypeCopain FROM Table2 INNER JOIN Table1 ON Table2.N° = Table1.Copain;
Ce qui est le même que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part =CpteDom("*";"Qry_Copain";"Copain='Moi'")Mais on ne travaille pas la même colonne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part =CpteDom("*";"Qry_Copain";"NumTypeCopain=1")
Pour faciliter ton travail tu peux même faire un formulaire avec source cette requête. Puis tu fais les comptes, additions, cumul etc dans le pied de ton formulaire.
Cordialement.
Bonsoir francishop,
Oups j'ai trouvé....
Effectivement francishop, mon problème était que je cherchais le nom et que il me fallais mettre son numéro.
Grace a t'es explicartions, je vais encore évolué
Merci a toi et bon week-end
Alain
Bonjour;
Juste une précision. Les fonctions de domaine sont puissantes. La contrepartie est qu'elles sont "gourmandes" en ressources et peu véloces. On privilégie les requêtes de regroupement lorsque celà est possible.
Cordialement.
Ps : N'oublie pas le tag résolu.
Partager