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

Requêtes et SQL. Discussion :

Créer un message d'alerte sur résultat de requête


Sujet :

Requêtes et SQL.

  1. #1
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 575
    Points : 2 550
    Points
    2 550
    Par défaut Créer un message d'alerte sur résultat de requête
    Bonsoir à tous,

    j'aimerai qu'au lancement de ma base, on puisse tester si des indices de documents ont dépassé la date d'envoi.

    La requête est simple, mais je ne voudrais pas afficher le résultat de cette requête mais un msgbox invitant l'utilisateur à visualiser ces indices s'il le désire.

    Avez-vous déjà fait quelque chose du genre ?

    Bonne soirée.
    Curt

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 353
    Points : 23 819
    Points
    23 819
    Par défaut
    Tu as deux approches pour le lancement, tu peux utliser la macro AutoExec ou un formulaire dans l'option Démarrage. Personnelement je préfère le formulaire.

    Voici le code que je te suggère pour réaliser ce que tu veux.

    À mettre dans un module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    public function ExisteIndiceAVerifier() as boolean
       dim result as boolean
     
       dim db as database:set db=currentdb
       dim q as querydef:set q=db.querydefs("NomDeTaQueryDeControle")
       dim r  as recordset: set r=q.openRecordset
     
       if r.recordcount<>0 then
            result=true
          else
            result=false
       end if
     
       r.close:set r=nothing
       set q=nothing
       db.close:set db=nothing
     
       ExisteIndiceAVerifier=result
    end function
    Si tu utilise le form, sur OnOpen

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ExisteIndiceAVerifier() then
       msgBox "Allez vérifier les indices"
    end if

  3. #3
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 575
    Points : 2 550
    Points
    2 550
    Par défaut
    merci pour ta réponse, malheureusement j'obtiens une erreur 3061 sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Dim r As Recordset: Set r = q.OpenRecordset
    trop peu de caractères. 2 attendu !!

    là je sèche !!
    merci tout de même.

    Curt

  4. #4
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 812
    Points
    812
    Par défaut
    Salut,

    Fais une recherche sur les requêtes paramétrées.

  5. #5
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 575
    Points : 2 550
    Points
    2 550
    Par défaut
    Merci pour la réponse, mais je n'ai rien trouvé qui puisse m'aider dans les requête paramétrées....

    Un p'tit coup de main pour régler l'erreur 3061 serait le bien venue...

    Bonne journée.
    Curt

  6. #6
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 812
    Points
    812
    Par défaut
    Salut,

    Peut être que ceci t'aideras.

    Chapitre 4.7

    Bon courage.

  7. #7
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 575
    Points : 2 550
    Points
    2 550
    Par défaut
    Bonjour à tous,

    Je ne voyais pas la chose aussi compliquée (en tout cas, trop compliqué pour moi).
    Donc j'ai besoin d'aide et pour cela j'explique ma demande :
    A l'ouverture de la base, je sélectionne l'affaire; ça ouvre le formulaire documents. (avec le sous-formulaire indice).
    J'ai une requête (ça je sais faire) qui me permet via un bouton de connaître les documents ayant des indices non diffusés ET dont la date prévisionnelle de diffusion est dépassée.

    Donc je voudrais qu'à l'ouverture du formulaire document, s'il existe des indices dans ce cas, on affiche un message indiquant à l'utilisateur qu'il faut qu'il s'occupe de faire la diffusion prévue. (désolé d'avoir été un peu long, mais il faut bien expliquer les choses !!)

    Est-il besoin de préciser que je ne suis pas à l'aise avec VB ???
    Si quelqu'un a déjà traité ce sujet ou peut me donner un coup de main, j'accepte volontiers.

    Merci.
    Curt

  8. #8
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut à tous,

    curt>marot_r t'as fourni une réponse satisfaisante. (il aurait fallu faire des tests pour savoir d'ou vient ton erreur)
    sinon j'ai une dans la même logique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Function nbEnregistrements(monSQL As String) As Single
    Set r = CurrentDb.OpenRecordset("select count(*) as nb from (" + monSQL + ")")
    nbEnregistrements = r.nb
    End Function
    dans un module à part.
    et sur l'événement "sur ouverture" du form:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_Open(Cancel As Integer)
    If nbEnregistrements("select * from laTable where laDate>#1/1/08#") > 0 Then
        MsgBox "A vérifier"
    End If
    End Sub
    le SQL doit être celui qui te renvoie tous les enregistrements qui ont "des indices non diffusés ET dont la date prévisionnelle de diffusion est dépassée".

    tu peux utiliser aussi cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function AEnregistrement(monSQL As String) As Boolean
    Set r = CurrentDb.OpenRecordset(monSQL)
    AEnregistrement = r.RecordCount = 1
    End Function

  9. #9
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 575
    Points : 2 550
    Points
    2 550
    Par défaut


    Bonjour et merci.... ça fonctionne exactement selon mes besoins.

    Bonne journée.

    Curt

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

Discussions similaires

  1. [AC-2007] Créer un message d'alerte evenement "sur changement"
    Par samsab dans le forum IHM
    Réponses: 11
    Dernier message: 09/05/2019, 15h38
  2. [Access 2003] Message d'alerte sur envoi de mail
    Par L.Lemarchand dans le forum VBA Access
    Réponses: 8
    Dernier message: 02/09/2008, 14h48
  3. Message d'alert sur un bouton
    Par salsero1 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 24/01/2008, 09h47
  4. Créer un message d'alerte avec comme solution oui ou non
    Par La_Bande_A_Zozo dans le forum C++Builder
    Réponses: 3
    Dernier message: 24/05/2006, 14h43
  5. afficher message d'alerte sur clic pendant chargement
    Par petitmic dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/11/2005, 12h14

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