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

VBA Access Discussion :

Besoin aide fonction SomDom


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 59
    Points
    59
    Par défaut Besoin aide fonction SomDom
    Bonjour,

    J'ai dans un formulaire Access un champ calculé à l'aide de la fonction SomDom.
    Solde:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CDbl(SomDom("Montant";"Décomptes clients";"[Date]<=" & DateUS([Date])))
    Celle-ci fonctionne bien ne l'état, mais j'aimerais pouvoir introduire un second critère de sélection du style :
    Solde:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CDbl(SomDom("Montant";"Décomptes clients";"[Date]<=" & DateUS([Date]) AND [N° Mandat]<=[Mandat_N°]))...
    mais là, je n'ai plus que le chiffre 1 sur chacune des lignes calculées.

    Suggestion de syntaxe ???
    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    plutôt quelque chose comme (de mémoire)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CDbl(SomDom("Montant";"Décomptes clients";"[Date]<=" & DateUS([Date]) & " AND [N° Mandat] <=" & [Mandat_N°]))
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 59
    Points
    59
    Par défaut Pas mieux
    J'avais déjà testé cette solution, mais là, au lieu d'avoir que des 1 sur chaque ligne de résultat, je n'ai que des 2 sur chaque ligne (alors que le champ "Montant" ne contient que des valeurs > 100€).
    Allez savoir ?!?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Tu as des dates, il faut les entourer de #.

    Un peu de lecture dans cet article de Philippe JOCHMANS Les Fonctions de Domaine dans Access, tu y trouveras différents exemples, dont certains avec des dates.

    Starec

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 59
    Points
    59
    Par défaut Fonctionne pas !
    L'exemple que tu m'as fourni fonctionne probablement avec des dates précises. Moi, dans mon cas, j'utilise des variables [Date] et si j'essaye de rajouter des # j'obtiens un message "La valeur entrée de l'expression de type date n'est pas valide".
    Sic !

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Alors c'est que ton format n'est pas correcte, il ne reconnait pas la date comme une date valide.

    Tu utilises la fonction SomDom donc en Français, essaie de mettre la date au format Français (jj/mm/aaaa), car je pense que ta fonction DateUS te donne la date au format Anglo-saxon (mm/dd/yyyy)

    Starec

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 59
    Points
    59
    Par défaut C'est pire !
    J'ai précisé dans ma table le format JJ/MM/AAAA.
    A prèsent, avec ma formule
    Solde:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     CDbl(SomDom("Montant";"Décomptes clients";"[Date]<=" & DateUS([Date] & " AND [N° Mandat] <=" & [Mandat_N°])))
    j'obtiens un message "Type de données incompatibles dans l'expression du critère".

  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    Tu n'as pas essayé ce que je t'ai dit

    • Entoures les dates de # (il y'a des exemples dans l'article que je t'ai conseillé de lire sur une des fonction de domaine)
    • Enlèves la fonction DateUS

    Starec

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 59
    Points
    59
    Par défaut Si, j'ai essayé !
    D'abord, les dates dans la page d'exemples sont toutes des dates fixes (and dteNote Between #09/01/2007#), alors que moi j'utilise une variable ([Date]).
    Ensuite, le fait de retirer la fonction DateUS ne change rien au message d'erreur.
    La fonction devient donc :
    Solde:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CDbl(SomDom("Montant";"Décomptes clients";"[Date]<=" & [Date] & " AND [N° Mandat] <=" & [Mandat_N°]))

  10. #10
    Invité
    Invité(e)
    Par défaut
    Re

    Les balises codes

    1 - Tu as oublié les #
    2 - On appelle jamais le nom d'un champ d'une table Date (je viens de m'en apercevoir), car c'est une fonction.

    Starec

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 59
    Points
    59
    Par défaut Ne fct tjs pas !
    Je viens de changer les noms des champs.
    La formule devient à présent :
    Solde:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CDbl(SomDom("Montant";"Décomptes clients";"[Dates]<=" & [#Date_op#] & " AND [N° Mandat] <=" & [Mandat_N°]))
    (PS Comment rajouter les balises code ???)

    Avec ou sans #, que des erreurs.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Re

    1 - Prière d'utiliser les balises codes (Sélection du code + un click sur le bouton # de la barre de rédaction des messages.

    2 - Tu n'as pas lu l'article sur le placement des #.

    Starec

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 59
    Points
    59
    Par défaut Bon, je récapitule !
    L'article que tu m'as cité ne contient que des exemples avec des dates fixes (exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NZ(MoyDom("bytNote";"tbl_Classe";"strNom='Dupond' and strPrenom='Marc' and dteNote Between #09/01/2007# and # 09/15/2007#");"Pas de Notes"
    ))

    Personnellement :
    J'ai une table (Décompte clients) avec les champs suivants :
    N° Mandat, Dates, Montant

    J'ai un formulaire dans lequel figure un champ de saisie permettant de préciser le N° Mandat sur lequel on souhaite effectuer un filtrage, ainsi qu'une zone de liste déroulante dans laquelle s'affiche la liste des Dates et Montant correspondant au N° Mandat choisi.
    J'aimerai rajouter un champ dans la liste déroulante qui calcule pour chaque date, le solde du champ Montant :
    Ex. Dates, Montant, Solde.

    Quelle formule suggères-tu ?

  14. #14
    Invité
    Invité(e)
    Par défaut
    Re

    C'est la syntaxe qu'il faut voir, que les dates soient fixes ou non.

    Essayes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CDbl(SomDom("Montant";"Décomptes clients";"[Dates]<=#" & [Date_op] & "# AND [N° Mandat] <=" & [Mandat_N°]))
    En espérant que Mandat_N° est bien un numérique.

    Starec

  15. #15
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    Essayes
    Ah ben quand même... Ca devenait Desperate Housewives !!!

    Philippe

Discussions similaires

  1. [XL-2007] Besoin d'aide fonction recherchev Excel 2007
    Par pressidor dans le forum Conception
    Réponses: 1
    Dernier message: 09/06/2012, 18h38
  2. Besoin Aide fonction centile sous Business Object
    Par arnovino dans le forum Deski
    Réponses: 1
    Dernier message: 27/10/2010, 14h48
  3. [XL-2007] Bonsoir besoin d'aide fonction =si
    Par scoubi77 dans le forum Excel
    Réponses: 2
    Dernier message: 24/06/2010, 07h53
  4. SVP, Besoin aide sur les fonctions
    Par atlantideD dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 06/08/2007, 14h31
  5. besoin d'aide fonction avec fichier (debutant)
    Par boby61 dans le forum Débuter
    Réponses: 9
    Dernier message: 14/03/2005, 11h22

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