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

Access Discussion :

Mesg Box sur "plusieurs enregistrements" [AC-2010]


Sujet :

Access

  1. #1
    Candidat au Club
    Femme Profil pro
    Novice
    Inscrit en
    Janvier 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Janvier 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut Mesg Box sur "plusieurs enregistrements"
    Bonjour,

    Peut être l’intitulé de mon poste n'est pas très explicite. Mais je suis vraiment novice en Access et en langage VBA.
    ALors voilà j'ai créé un formulaire dans lequel apparait un "colonne" date limite de réponse. Hors je voudrais qu'à l'ouverture de ma base lorsque la date limite de réponse est celle d'aujourd'hui une boite de dialogue s'ouvre et m'indique "Date limite de réponse atteinte". J'ai mis en place le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_Open(Cancel As Integer)
        If Me.Date_limite_de_réponse = Date Then
           MsgBox "Une date limite de réponse est atteinte", vbExclamation, "Réponse attendue"
        End If
    End Sub
    Il fonctionne mais seulement lorsque ma date limite est la date du jour et est dans le premier enregistrement. Il fonctionne également lorsque je clique sur les enregistrements dont la date limite est celle du jour mais seulement lorsqu'on les sélectionnes. Or je voudrais un message box pour n'importe lequel des enregistrement ayant attend la date limite dès l'ouverture du formulaire.
    J'espère m'être fait comprendre et que vous aurez une solution à m'apporter...

    (Les dates en fonds rouges sont les dates limites = mise en forme conditionnelle).

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour et bonne année.

    Est-ce que tu veux :

    1. Un message sur chacune des lignes qui ont atteint la date limite ?
    2. Un message globale qui t'informe que parmi tes x lignes au moins une a atteint sa date limite ?
      Il peut y en avoir une ou des milliers, tu n'as toujours qu'un seul message.


    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Candidat au Club
    Femme Profil pro
    Novice
    Inscrit en
    Janvier 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Janvier 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Bonjour Marot oui bonne année!

    Idéalement se serait plutôt la solution 2 que je recherche! Avoir un seul message qui m'indique qu'au moins une date limite est atteinte ^^

    Merci pour ta réponse!

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Il va falloir utiliser les fonctions de domaine ou les sommes de Access. Je pense que les sommes seront plus faciles à mettre en œuvre.

    Dans ta source de données (requête), il faut ajouter un champ calculé du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EstLimiteAtteint: [Date_limite_de_réponse]>=Date()
    Il faudait peut-être ajouter un test pour savoir si la personne n'a pas déjà répondu pour éviter les fausses alerte si des vieilles données sont affichées. Quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EstLimiteAtteint: [Date_limite_de_réponse]>=Date() and isNull([Date_Reponse])
    EstLimiteAtteind va contenir -1 (Vrai) si la date est dépassée et 0 (Faux) sinon.

    Après tu ajoutes le champ EstLimiteAtteint aux champs de détail de ton formulaire.
    Ensuite tu ajoutes un champ "CompteLimite" dans l'entête (ou le pied) du formulaire et tu mets comme valeur =Somme([EstLimiteAtteint]). Il va te donner le nombre de date limites (inversé).
    Et enfin tu mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Open(Cancel As Integer)
     
        If Me.CompteLimite <> 0 Then
           MsgBox "Une date limite de réponse est atteinte", vbExclamation, "Réponse attendue"
        End If
     
    End Sub
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Candidat au Club
    Femme Profil pro
    Novice
    Inscrit en
    Janvier 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Janvier 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Bonjour Marot,

    Je vais essayer de faire ce que tu m'as indiquer, mais je ne comprends pas tout. Aussi je n'ai fais aucune requête alors je ne sais pas si c'est possible...
    Je joint mon fichier (ce que j'avais oublié de faire hier), peut que cela sera plus clair et pour aider!

    SUivis demande d'avis.zip

    Encore merci pour ton aide
    Bonne journée.

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Personnellement je n'ai pas le droit d'installer des logiciels sur ma machine donc je vais continuer avec le forum.

    . Aussi je n'ai fais aucune requête alors je ne sais pas si c'est possible...
    Access est fait pour faire des requêtes donc pas de problème.
    Actuellement, tu as probablement créer ton formulaire en utilisant l'assistant.
    Il est possible qu'il y ai déjà une requête même si Access ne te l'a pas dit, sinon la créer est assez simple.

    1. Tu ouvres ton formulaire en mode conception.
    2. Tu fais afficher les propriétés du formulaire et tu affiches l'onglet "Données".
    3. Tu repères la propriété "Source" et tu appuis sur les [...] au bout.
      Cela va afficher le concepteur de requête.
      Si tu as utilisé seulement une table, accepte la création de requête proposée par Access.
    4. Places toi complètement à droite de tes champs (colonnes) actuels dans une colonne vide ou insère un colonne à un endroit logique.
    5. Tapes sur la 1ère ligne (là où sont les noms des champs)
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      EstLimiteAtteint: [Date_limite_de_réponse]>=Date()
      Félicitation, tu viens de créer ton 1er champ calculé. C'est un truc très utile dont on se sert souvent.
    6. Sauvegardes.
    7. demande l'affichage des résultats (l'icône avec le "!") et vérifies que ton champs donne les résultats attendus.
    8. Quittes le concepteur de requête (confirmes si Access demande de sauvegarder).
    9. De retour dans le formulaire, demande de faire afficher la liste des champs disponibles (c'est l'icône "Ajouter des champs existants" dans le ruban).
    10. Glisses ton champs calculé dans la partie détail du formulaire.
    11. Sauvegardes et vérifies que les données s'affichent bien.
      (Une fois le formulaire finalisé, tu pourras rendre ce champ invisible si tu le souhaites.)
    12. Dans l'entête de formulaire, ajoutes une champ texte et appelles-le [CompteLimite].
      Définis sa valeur à =Somme([EstLimiteAtteint]).
      Si l'entête n'est pas visible, va dans le carrée gris en haut à gauche de la zone de détail et click droit. Sélectionnes entête/pieds de formulaire.
    13. Sauvegardes et vérifies que les données s'affichent bien.
    14. Après, ajoutes le code que j'ai mentionné.


    Avec cela tu devrais avoir ce que tu as demandé.
    J'espère mes explication assez claires mais n'hésite pas à poser des questions si tu rencontres des difficultés.
    On a tous été novice à un moment donné :-).

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Candidat au Club
    Femme Profil pro
    Novice
    Inscrit en
    Janvier 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Janvier 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Merci pour ton aide seulement ça ne fonctionne pas comme je le souhaiterai. Je pense que je ne fais pas comme il le faut, c'est à partir du 4. que je bloque...
    Toutes mes colonnes sont vides est ce normal? Et lorsque j’inscris le code que tu m'as donné et que j’exécute la requête, une boite de dialogue s'ouvre alors et qui demande d'inscrire quelque chose. Je tape alors Date et là un tableaux avec une liste de -1 apparait. Ensuite dans mon formulaire, l'ensemble des données apparaissent avec un #Nom?.

    Peut tu me dire ce que je fais mal?

    Merci

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    j’inscris le code que tu m'as donné et que j’exécute la requête, une boite de dialogue s'ouvre alors et qui demande d'inscrire quelque chose.
    Généralement c'est que Access n'a pas trouvé de champ dont le nom correspond.
    Vérifie que le nom du champ source est correct et corrige le code si nécessaire.
    L'intitulé de la boite de dialogue est un bon indice pour savoir quel champ est manquant.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Candidat au Club
    Femme Profil pro
    Novice
    Inscrit en
    Janvier 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Janvier 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Voilà ce que j'obtiens une fois que je suis dans l'élément requête :

    Nom : 1.gif
Affichages : 140
Taille : 34,7 Ko

    Je tape ensuite le code que tu m'as donné dans la cellule champs :

    Nom : 2.gif
Affichages : 134
Taille : 5,7 Ko

    Puis j’exécute et là la boite de dialogue apparait : Nom : 3.gif
Affichages : 144
Taille : 15,2 Ko, je tape donc Date puis OK
    et ce tableau m'est donné : Nom : 4.gif
Affichages : 140
Taille : 13,2 Ko

    Ensuite quand je retourne sur mon formulaire en mode affichage, la boite de dialogue s'affiche à nouveau et mon formulaire ressemble à ça Nom : 5.gif
Affichages : 155
Taille : 17,5 Ko.
    J'ai beau refaire la manip je ne comprends pas ce qui ne va pas...

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    OK, désolé, j'ai oublié une étape.

    Sélectionner l'étoile dans la liste des champs et la glisser dans les colonnes en dessous.
    Personnellement je la met toujours en 1ère colonne.
    Cela va prendre tous les champs qui sont dans la table et les ajouter a la requête sans avoir à créer une colonne par champ.
    C'est super pratique et si tu ajoutes (ou retires) un champ ça continue à fonctionner en prenant tous les champs existants.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  11. #11
    Candidat au Club
    Femme Profil pro
    Novice
    Inscrit en
    Janvier 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Janvier 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    J'ai réussi cette étape seulement la boite de dialogue apparait à chaque ouverte de mon formulaire est-il possible de la faire "disparaitre"?

    Ensuite je vais essayer de faire la suite...

  12. #12
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    la boite de dialogue apparait à chaque ouverte de mon formulaire
    Il ne devrait plus y avoir de boite de dialogue. Peux-tu poster une copie d'écran de celle-ci ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  13. #13
    Candidat au Club
    Femme Profil pro
    Novice
    Inscrit en
    Janvier 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Janvier 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Je viens de voir que dans la requête que je viens de créer même les dates "superieur" à aujourd'hui c'est à dire demain après demain... apparaissent ainsi que les dates "inferieur". Est ce normal?

    Merci

  14. #14
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Access affiche toutes les données dont il dispose sauf si on lui dit le contraire.

    Tu peux le limiter dans la requête ou tu peux le limiter en appliquant un filtre au moment de l'ouverture du formulaire.
    Je pense qu'actuellement c'est ce que ton application fait. Elle applique un filtre au formulaire ce qui expliquerai que tu ne voyais pas les données avant.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  15. #15
    Candidat au Club
    Femme Profil pro
    Novice
    Inscrit en
    Janvier 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Janvier 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Voilà ce que j'obtiens :

    Pièce jointe 232422

    Nom : 7.gif
Affichages : 136
Taille : 20,1 Ko

    Nom : 8.gif
Affichages : 102
Taille : 10,4 Ko

    Nom : 9.gif
Affichages : 110
Taille : 5,8 Ko

  16. #16
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Désolé, le champ dans la table s'appelle

    [Date limite de réponse] et non pas [Date_limite_de_réponse].

    En passant pour éviter des ennuis parfois sournois, il est recommandé d'utiliser pour les noms internes (ceux utilisés par la machine) de se limiter aux lettres majuscules et minuscules non accentuées et non "décorées" (pas de ç), aux chiffres et au souligné (_). Il faut fuir comme la peste les caractères non alphabétique comme le # et le - qui on parfois des effets inattendus.

    Donc ton nom pourrait être [Date_limite_de_reponse] ou [DateLimiteRéponse].

    Pour les textes visibles par les utilisateurs, il faut faire des formulaires qui te permettent d'afficher des noms agréables et compréhensibles en utilisant des étiquettes.
    En gros tes utilisateurs ne devraient voir de ton application que les formulaires. Le reste c'est pour les développeurs et la machine.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  17. #17
    Candidat au Club
    Femme Profil pro
    Novice
    Inscrit en
    Janvier 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Janvier 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Super merci je regarde ça demain! Et je reviendrai surement vers toi pour la suite merci pour ton aide !

    Bonne journée

  18. #18
    Candidat au Club
    Femme Profil pro
    Novice
    Inscrit en
    Janvier 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Janvier 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    Merci pour tes explications marot_r, seulement j'ai encore un petit problème. J'ai bien créé les nouveaux champs dans mon formulaire et mis en place le code que tu m'as transmis. Sauf que lorsque je ferme tout et réactive mon formulaire le message d'erreur suivant s'affiche :

    Nom : 1.gif
Affichages : 136
Taille : 26,2 Ko

    Peut-tu me dire ce que j'ai encore mal fait?

    Merci

  19. #19
    Candidat au Club
    Femme Profil pro
    Novice
    Inscrit en
    Janvier 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Janvier 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Rebonjour,

    C'est bon j'ai résolu le problème simplement en remplaçant [CompteLimite] par [Count] dans mon formulaire et donc également dans mon code! Et bingo la boite d'avertissement apparait à l'ouverture de mon formulaire!!!

    Maintenant il faut que je trouve comment rendre invisible les nouveaux champs que j'ai rajouter dans mon formulaire!

    Merci pour ton aide précieuse marot_r

  20. #20
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Attention Count est un mot réservé donc il est préférable de l'éviter comme nom d'objet.

    Maintenant il faut que je trouve comment rendre invisible les nouveaux champs que j'ai rajouter dans mon formulaire!
    C'est une des propriétés du contrôle. Aussi si ton formulaire est en mode feuille de données, il faut masquer la colonne. Rendre invisible le contrôle ne fait pas cela (et en passant, masquer la colonne ne rend pas le contrôle invisible. C'est un peu stupide mais c'est ainsi).

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/10/2006, 13h55
  2. Requete sur plusieurs enregistrements !
    Par Mathelec dans le forum Langage SQL
    Réponses: 14
    Dernier message: 12/03/2006, 14h27
  3. [JS] Problème de quotes pour enregistrer un formulaire.
    Par polnioumane dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 24/10/2005, 17h04
  4. Problème sur Request.ServerVariables("QUERY_STRING"
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 25/03/2005, 11h47

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