IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Obtenir Total sur Requete [AC-2003]


Sujet :

IHM

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 62
    Points : 43
    Points
    43
    Par défaut Obtenir Total sur Requete
    Bonjour le Forum,

    Je vais essayer d’être précis:

    J'ai créé une requête (Rqt Amis) basée sur une table (Tbl Contacts)
    Cette requête se présente ainsi :
    Col 1 Col 2 Col 3
    Champ......: Amis: Nom Catégorie ; Titre ; Total: Nom Catégorie
    Table........: Tbl Contacts ; Tbl Contacts ;Tbl Contacts
    Opération...: Regroupement ;Regroupement ;Compte
    Tri............:
    Afficher.....: oui ; oui ; oui
    Critères.....: "Amis"
    Ou...........:

    Dans un formulaire j'introduis un Sous Formulaire basé sur cette requête pour afficher les résultats.

    Formulaire (Frm Synthèse) avec Sous Formulaire (SousFrm Amis)
    Je désirerai avoir dans le pied du Sous Formulaire une Zone de texte me calculant le nombre d'enregistrement affichés sachant que le Sous Formulaire est en mode continu.
    Voila j'espère que quelqu'un pourra m'aider j'ai essayé avec la formule DSum mais je ne la comprend pas très bien et cela me provoque des erreurs
    Merci d'avance
    zeltron24

  2. #2
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Bonsoir,

    DSum fait aune addition de valeur essayez plutôt DCount pour compter.

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Bonsoir rjamin

    J'ai essayé avec Dcount ça me compte tous les enregistremements
    Ou alors je l'utilise mal car ce que je veux c'est avoir le total aprés le filtre.
    Mon SousFrm Amis me donne :

    Monsieurs = 8
    Madame = 7
    Mademoiselle = 2

    c'est le total des trois que je veux soit affiché dans une zone de texte 17

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 238
    Points
    238
    Par défaut
    Salut,
    Dans ce cas, tu peux mettre en source de ta ZdT17 :
    =[Monsieur]+[Madame]+[Mademoiselle]
    Les champs correspondent en fait à tes Champs qui contiennent les nombres 8,7 et 2.
    @+

  5. #5
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Bonjour,
    Dans l'aide d'ACCESS on trouve

    DCount, fonction
    La fonction DCount permet de déterminer le nombre d'enregistrements figurant dans un jeu d'enregistrements spécifique (un domaine (domaine : ensemble d’enregistrements défini par une table, une requête ou une expression SQL. Les fonctions de domaine renvoient des informations statistiques sur un domaine ou un ensemble d’enregistrements spécifique.)). Utilisez-la dans un module Visual Basic pour Applications (VBA), une macro (macro : action ou ensemble d’actions que vous pouvez utiliser pour automatiser des tâches. Les macros sont enregistrées dans le langage de programmation Visual Basic pour Applications.), une expression de requête ou un contrôle calculé (contrôle calculé : contrôle utilisé dans un formulaire, un état ou une page d’accès aux données pour afficher le résultat d’une expression. Ce résultat est recalculé chaque fois que l’une des valeurs sur laquelle est basée l’expression est modifiée.).

    Par exemple, vous pouvez l'utiliser dans un module pour renvoyer le nombre d'enregistrements d'une table Orders qui correspondent aux commandes passées à une date spécifique.

    Syntaxe

    DCount(expr, domaine [, critères] )

    La syntaxe de la fonction DCount comporte les arguments suivants :

    Argument Description
    expr Obligatoire. Expression identifiant le champ dont vous voulez comptabiliser les enregistrements. Il peut s'agir soit d'une expression chaîne (expression de chaîne : expression qui, évaluée, donne une séquence de caractères contigus. L’expression peut comprendre les éléments suivants ; fonction qui renvoie une chaîne ou une chaîne de type Variant (VarType 8) ; opérateur sur chaîne, constante, variable ou Variant.) qui identifie un champ d'une table ou d'une requête, soit d'une expression qui effectue un calcul sur des données de ce champ. Vous pouvez inclure dans l'argument expr le nom d'un champ dans une table, un contrôle sur un formulaire, une constante ou une fonction. Si expr inclut une fonction, celle-ci peut être intégrée ou définie par l'utilisateur mais ne peut pas être une fonction de regroupement Domaine ni une fonction d'agrégation SQL.
    domaine Obligatoire. Expression chaîne qui identifie l'ensemble d'enregistrements constituant le domaine. Il peut s'agir d'un nom de table ou de requête pour une requête n'exigeant pas de paramètre.
    critères Facultatif. Expression chaîne utilisée pour limiter la plage de données sur laquelle porte la fonction DCount. Par exemple, l'argument critères est souvent équivalent à la clause WHERE d'une expression SQL sans le mot WHERE. Si cet argument est omis, la fonction DCount évalue l'argument expr par rapport à l'ensemble du domaine. Tous les champs inclus dans l'argument critères doivent également figurer dans le domaine sans quoi, la fonction DCount renvoie la valeur Null (Null : valeur que vous pouvez entrer dans un champ ou utiliser dans des expressions ou des requêtes pour indiquer des données manquantes ou inconnues. Dans Visual Basic, le mot clé Null indique une valeur Null. Certains champs, tels que les champs de clé primaire, ne peuvent pas contenir de valeurs Null.).
    Remarques
    Faites appel à la fonction DCount pour comptabiliser le nombre d'enregistrements figurant dans un domaine lorsque vous n'avez pas besoin de connaître leur valeur spécifique. Bien que l'argument expr puisse calculer la valeur d'un champ, la fonction DCount se contente de renvoyer le nombre d'enregistrements. La valeur des calculs effectués par l'argument expr n'est pas disponible.

    Utilisez la fonction DCount dans un contrôle calculé si vous avez besoin de spécifier des critères afin de limiter la plage de données sur laquelle porte la fonction DCount. Par exemple, pour afficher le nombre de commandes à expédier en Californie, définissez la propriété SourceContrôle de la zone de texte à l'expression suivante :

    =DCount("[IDCommande]", "Commandes", "[RégionExpédition] = 'CA'")

    Si vous voulez simplement comptabiliser tous les enregistrements du domaine sans restriction, faites appel à la fonction Count.

    Conseil

    La fonction Count a été optimisée pour accélérer la calcul du nombre d'enregistrements dans des requêtes. Utilisez-la dans une expression de requête à la place de la fonction DCount et définissez des critères facultatifs pour limiter le nombre de résultats renvoyés. Faites appel à la fonction DCount si vous voulez comptabiliser les enregistrements d'un domaine à partir d'un module de code ou d'une macro ou dans un contrôle calculé.

    Vous pouvez faire appel à la fonction DCount pour calculer le nombre d'enregistrements contenant un champ particulier qui ne figure pas dans la source de l'enregistrement sur laquelle le formulaire ou l'état est basé. Par exemple, vous pouvez afficher le nombre de commandes figurant dans un contrôle calculé de la table Orders dans un formulaire basé sur la table Products.

    La fonction DCount ne comptabilise pas les enregistrements contenant des valeurs Null dans le champ référencé par l'argument expr sauf si cet argument est un astérisque (*). Si vous utilisez un astérisque, la fonction DCount calcule le nombre total d'enregistrements y compris ceux contenant des champs Null. L'exemple suivant calcule le nombre d'enregistrements figurant dans une table Orders.

    intX = DCount("*", "Commandes")

    Si l'argument domaine correspond à une table contenant une clé primaire (clé primaire : un ou plusieurs champs (colonnes) dont la valeur identifie de façon unique chaque enregistrement d’une table. Une clé primaire n’accepte pas les valeurs Null et doit toujours avoir un index unique. Une clé primaire sert à relier une table à des clés étrangères se trouvant dans d’autres tables.), vous pouvez également calculer le nombre d'enregistrements en définissant expr au champ de clé primaire étant donné que ce champ ne contiendra jamais de valeur Null.

    Si l'argument expr identifie plusieurs champs, séparez leur nom par un opérateur de concaténation (soit le symbole du Et commercial (&), soit l'opérateur d'addition (+). Si vous utilisez le symbole du Et commercial pour séparer les champs, la fonction DCount renvoie le nombre d'enregistrements contenant des données dans un des champs répertoriés et si vous utilisez l'opérateur d'addition, elle renvoie uniquement le nombre d'enregistrements contenant des données dans tous les champs répertoriés. L'exemple suivant montre les effets de chaque opérateur lorsqu'il est utilisé avec un champ contenant des données dans tous les enregistrements (ShipName) et avec un champ ne contenant pas de données (ShipRegion).

    intW = DCount("[NomExpédition]", "Commandes")
    intX = DCount("[RégionExpédition]", "Commandes")
    intY = DCount("[NomExpédition] + [RégionExpédition]", "Commandes")
    intZ = DCount("[NomExpédition] & [RégionExpédition]", "Commandes")

    Remarque Il est conseillé d'utiliser le Et commercial pour effectuer des concaténation de chaînes et de réserver l'opérateur d'addition aux additions numériques sauf si vous voulez propager des valeurs Null dans toute une an expression.

    Les changements effectués dans les enregistrements du domaine, qui n'ont pas été enregistrés, ne sont pas inclus lorsque vous utilisez cette fonction. Si vous voulez que la fonction DCount utilise les valeurs modifiées, commencez par enregistrer ces changements en cliquant sur Sauvegarder enregistrement sous Enregistrements dans l'onglet Données, en plaçant le curseur sur un autre enregistrement ou en utilisant la méthode Mise à jour.

    Exemple
    Remarque Les exemples qui suivent montrent l'utilisation de cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d'informations sur l'utilisation de VBA, sélectionnez Référence du développeur dans la liste déroulante en regard de Rechercher et entrez un ou plusieurs termes à rechercher.

    La fonction suivante renvoie le nombre de commandes expédiés vers un pays/une région spécifique après une certaine date d'expédition. Le domaine correspond à une table Commandes.

    Public Function OrdersCount _
    (ByVal strCountryRegion As String, _
    ByVal dteShipDate As Date) As Integer

    OrdersCount = DCount("[DateExpédié]", "Commandes", _
    "[RégionPaysExpédition] = '" & strCountryRegion & _
    "' AND [DateExpédié] > #" & dteShipDate & "#")
    End Function

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Bonjour à tous,

    La "Bible" de DCunt est très explicite pour un "Vétéran" d' access mais j'avoue y perdre mon latin. J'essaye de trouvé le code qui me convient.
    De plus dans la faq j'ai trouvé ce code
    If MsgBox("Valider la mise a jour ?? ", vbOKCancel) = vbCancel Then
    MsgBox "L\'opération de mise a jour a été annulée", vbInformation
    Cancel = True ' annule l'opération
    Exit Sub
    And If
    Déjà j'ai corrigé And if par End if mais lorque j'applique ce code dans le bouton "ANNULER" j'ai un message d'erreur "Variable non défini".
    Enfin, est il possible d'empécher Access d'accrémenter la clé primaire lorsque j'annule un enregistrement ?
    Merci pour vos réponses

  7. #7
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Re,

    Un peu de lecture encore

    http://starec.developpez.com/tuto/fonctionsdomaines/

    plus explicite que l'aide.

  8. #8
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Re,
    J'y suis allé voir déjà, mais comme je le dit pour moi c'est du latin.
    Il me faudrait un exemple ayant trait à mon projet.
    Cela je le comprendrai mieux. En clair avec le nom de mes champs.
    J'ai déjà copié des explications en y changeant les champs et Frm par les miens mais ça ne me mets que des erreurs ou cela bloque Acces.
    Cordialement

  9. #9
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Re,

    Au plus je recherche dans la faq au plus je me mélange les pédales. Là je suis au bord de la crise.
    Une autre erreur s'affiche maintenant Voici le code :

    Dim vRepVal
    Dim valNum As Integer
    Do
    vRepEnreg = InputBox("Saisissez une valeur 1 ou 0." + Chr(13) _
    + Chr(13) + "Avec Photo..............1 " _
    + Chr(13) + "Sans Photo..............0 " + Chr(13), "Validation Photo.", "N°:")

    If vRepEnreg = "" Then Exit Sub ' Exit si valeur nul

    If Not IsNumeric(vRepEnreg) Then ' Vérification si numérique
    MsgBox "Une valeur numérique est requise !", vbExclamation, "Message Erreur"
    End If

    Loop Until IsNumeric(vRepEnreg)
    valNum = Val(vRepEnreg) ' Conversion en Format numérique

    If valNum >= 2 Then ' Vérification si Valeur inférieure à 2
    MsgBox "La Valeur " & valNum & " est supérieure à 2 !" + _
    Chr(13) + "Choisissez une valeur inférieure. ", vbOKOnly, vbExclamation, "Erreur"
    End If

    Me.Photo.Value = valNum ' Validation de la saisie
    DoCmd.GoToRecord , , acNext ' Se plositionner sur l'enregistrement Suivant
    NouvelEnreg ' Demande Si Nouvel Enregistrement
    Meme si je rentre un chiffre supérieur à 2 celui ci est inscrit dans le champ Photo alors qu'il devrait y avoir un message d'erreur.
    De plus je ne peux pas aller sur la macro NouvelEnreg
    Alors svp j'ai besoin d'aide avant de jeter le marteau sur le PC
    d'avance Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème sur requete insert
    Par shadowmoon dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/06/2005, 11h46
  2. [ASA] Problème sur requete ASA
    Par shadeoner dans le forum SQL Anywhere
    Réponses: 6
    Dernier message: 06/04/2005, 14h35
  3. [ASA] Problème sur requete
    Par shadeoner dans le forum SQL Anywhere
    Réponses: 9
    Dernier message: 30/03/2005, 15h59
  4. Calcul sur requete
    Par nicoolas dans le forum Access
    Réponses: 3
    Dernier message: 11/01/2005, 16h50
  5. idees sur requete a simplifier ???
    Par DaxTaz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/07/2004, 09h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo