Déclencher une alerte avec Access

Ces articles pourraient également vous intéresser...

20 réponses

  1. Youssef dit :

    bonjour Hervé,
    je vous remercie pour votre article qui m’a été d’un sécours capital!
    il marche parfaitement comme je le souhaite. j’y ai meme ajouter d’autres elements tels que l’alerte par mail qui marche égalment. Mais le seul hic, c’est lorsque la résultat de la requête contient plusieurs lignes, il ne prend en compte que le premier enregistrement.
    voice mon code:

    Private Sub Form_Open(Cancel As Integer)

    ‘ Annuler l’ouverture du formulaire de rappel
    ‘ si la requête qui l’alimente ne contient
    ‘ aucune ligne
    If Me.RecordsetClone.RecordCount = 0 Then
    Cancel = True
    Else
    Set Obj = CreateObject(“Outlook.Application”).CreateItem(0)
    With Obj
    .To = Me.Email
    .subject = “Vehicle Pass Expired: ” & Me.Registration & ” ” & Me.Plant_No
    .Body = “Hi,Your Vehicle Pass has expired! Please go to the security’s department to renew it”
    .Save
    .Send
    End With
    Set Obj = Nothing
    End If
    End Sub

    A vote avis, qu’est-ce qui manqué pour que le code prend en compte toutes les lignes ?

    Merci d’avance.

    • Hervé Inisan dit :

      Il faudrait faire une boucle sur tous les enregistrements de Me.RecordsetClone pour parcourir chaque enregistrement et envoyer un mail. J’imagine qu’il s’agit d’un mail différent pour un destinataire différent ?

  2. Vince69 dit :

    Oui j’aimerai un affichage “tout bête”, j’ai une table congé avec date de début et de fin (entre autres), l’objectif serait que tous les salariés soient “en tête de ligne”, et que les périodes de congé soient en couleur contrairement aux périodes travaillées. Comme vous l’avez dit, cela à l’air compliqué mais est ce que se serait lourd pour la base?
    Et (peu importe le poids) comment faire si c’est possible?
    J’ai vu des exemples de planning, mais qui m’avaient l’air peu adaptable..
    Encore merci de partagé vos connaissances :D

    • Hervé Inisan dit :

      Ça ne sera pas particulièrement lourd pour la base, mais ça demande une mise en place.
      Avant de parler affichage, il faut modéliser les tables et leurs relations (l’affichage viendra ensuite, mais on n’aura pas nativement une forme d’agenda classique).

  3. Vince69 dit :

    Bonjour, je ne sais pas si il y a encore du monde sur ce site mais si c’est le cas, le code VBA que j’ai copié coller ne fonctionne pas. En effet, il n’y a pas de ligne dans ma requête, cependant celle-ci s’ouvre tout de même. Je ne connais pas le langage VBA, mais quand je fais débogage/Compiler, rien n’indique qu’il y a une erreur.

    Faut-il valider le VBA une fois saisie? Est il possible que l’application n’en tienne pas compte? et pourquoi si c’est cela?

    Merci d’avance :)

    • Hervé Inisan dit :

      Est-ce, ouverte manuellement, la requête affiche déjà des données ?

      • Vince69 dit :

        A vrai dire, ma macro est composer de 4 requêtes misent dans des formulaires (la macro ouvre donc les formulaire comme dans le tuto ci-dessus). Ouverte manuellement, les requêtes n’indique aucune ligne. Mais quand je lance ma base les formulaires vides s’ouvrent quand même.
        Je me demande si le VBA n’est pas désactiver (ou ne fonctionne pas), car sur d’autres tuto incorporant du VBA,quand je rentre des codes, rien ne se passe…

        • Hervé Inisan dit :

          VBA peut effectivement être désactivé : il y a alors une barre d’avertissement qui s’affiche au-dessous du ruban, à l’ouverture de la base (Access 2007 et plus).

          • Vince69 dit :

            Effectivement le VBA était désactivé donc sa marchai beaucoup moin bien du coup ^^
            Encore merci à toi.
            Et au passage même si ce n’est pas l’endroit exacte, est il possible de créer un planning simple facilement pour voir quand les salariés prennent leurs congés?

          • Hervé Inisan dit :

            Il y a 2 choses dans un planning : la gestion des données, et l’affichage.
            La première est relativement simple. Par contre, pour l’affichage, tout dépend du résultat souhaité (un affichage du type Agenda n’est pas simple nativement).

  4. Hervé Inisan dit :

    Daniel > Une requête SELECT servant à la mise à jour ne doit comporter qu’une table principale (avec tous ses champs sur la grille, de préférence), et éventuellement des tables secondaires liées (avec les champs complémentaires si nécessaire).

  5. Daniel dit :

    Bonjour. Je suis vraiment ravi de tous les outils et réflexions trouvés sur ce blog. J’ai essayé de construire une BDD sur le modèle proposé ici. Avec toutes tables et les relations. Mais lorsque j’essaie de renseigne les tables pour tester la requête, on me dit qu’il faut ajouter ou modifier l’enregistrement associé est requis dans l’ une ou l’autre des tables.
    Pouvez vous m’ envoyer un exemple bien conçu?
    Merci

  6. Hervé Inisan dit :

    Valérie > Est-ce qu’il y a un autre champ permettant de dire que l’opération est terminée ? Par exemple, un champ Oui/Non (comme Retour validé, dans mon scénario). Dans ce cas, il suffirait d’ajouter un critère sur ce champ pour exclure les lignes inutiles.

  7. Valérie dit :

    Bonjour,

    Merci pour l’article ci-dessus. Celui-ci m’est très utile. J’ai créé un rappel pour des distributions de dividendes avec le critère de requête suivant: <=DateAdd(“d”;30;Date())
    La formule fonctionne très bien. Néanmoins, une fois les dates dépassées, celles-ci restent affichées dans mon rappel. Qu’est-ce que je peux rajouter à ma requêtre pour que les distributions ne s’affichent plus à partir de J+1?

    Merci d’avance pour votre aide,

    Valérie

  8. Demba Badji dit :

    MERCI Mr Hervé

  9. Hervé Inisan dit :

    Hed > L’incohérence vient de la condition de ton Iif() : écrit comme cela, "Espace" désigne une chaîne de caractères. Donc tu compares du texte à une valeur numérique (1000). Il faut écrire [Espace] pour faire référence au champ Espace. Je suppose du coup que le champ Espace est de type Numérique.

    Ouala !

  10. Hed dit :

    Salut,

    Je trouve ce site fort utile, car simplifiant beaucoup et pour les debutants, y’a que ca de vrai! Le simple et concret.

    Je poste car j’ai un petit soucis dans l’utilisation de ma base de donnees. Etant dans l’industrie de l’immobilier je souhaite etablir une base de donnee ayant le nom des societes et la date de fin de leur contrat de location.

    Donc dans le tableau il y aura une colonne “Date de fin de contrat” ou il y aura des dates, mais aussi des cases ou rien ne sera rempli. (info inconnue)

    Et le but de cette base de donnee sur access c’est de beneficier de requetes qui, comme tu l’expliques, pourront me rappeler en un coup d’oeil ou j’en suis.

    Desole de rentrer en detail mais cela me semble necessaire, en fait il faut que je contacte les clients avant la fin de leur contrat donc ca marcherait un peu comme toi avec les videos sauf que j’irai dans le passe.

    La ligne de code que j’ai ecris c’est:
    IIf(“Espace”>1000,Date()-365,Date()-180)

    Ce qui se traduit dans mon esprit par si l’espace est plus grand que 1,000 metres carres je suis prevenu 365 jours avant et sinon 180jours avant.

    Le probleme c’est qu’il me dit qu’il y a une inconherence avec le type de donnees, et si j’ai bien compris c’est le fait que sur certaines cases de ma database il y a des cellules vides et la formule ne marche pas quand toutes les cases n’ont pas de valeur precise.

    J’espere avoir ete assez clair, merci par avance de votre aide.

    Hed.

  11. Ismael dit :

    Salut Hervé ! J’ai débuté sous Access il y a peu, et je dois dire que tes articles me sont d’une très grande aide.
    Merci de partager avec nous tes connaissances.
    Bonne continuation !

  12. Hervé Inisan dit :

    fred75 > Euh… je ne vois pas bien le lien entre l’article et la question :) Mais pour ce qui est de la question : le traitement aller/retour tel que le fait Access 2007 en automatique suppose la transmission d’infos spécifiques dans l’en-tête du mail. C’est sûrement faisable de développer un équivalent pour d’autres versions, mais ça prendrait un peu de temps ;)

  13. fred75 dit :

    Bonjour,

    Cette procédure semble intéressante (et alléchante !).

    Je voudrais savoir si vous auriez une identique mais conçue pour Lotus Notes et Access 2000 ?

    Ce que je souhaiterais faire est envoyer des e-mails et, au retour, alimenter automatiquement les tables (à l’instar de ce que permet ACCESS 2007).

    Est-faisable ?

    Cordialement

    fred75

Répondre à Demba Badji Annuler la réponse.

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">