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 :

message alerte (commande de stock)


Sujet :

Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2014
    Messages : 5
    Points : 7
    Points
    7
    Par défaut message alerte (commande de stock)
    Nom : Capture2 (Mobile).jpg
Affichages : 1775
Taille : 27,0 KoNom : Capture1 (Mobile).jpg
Affichages : 1605
Taille : 38,9 Ko
    Bonjour, à toutes et à tous,

    Je mets en place une gestion des stocks avec Access 2010.
    j'ai utilisé la base Access qui se trouve au lien ci-dessous( je tiens à remercier encore une fois de plus Claude Leloup pour son tuto):

    http://claudeleloup.developpez.com/t...tion-de-stock/

    Ma question est la suivante :
    je souhaiterai afficher un message d'alerte "Attention : veuillez ravitailler le stock pour cet article!"
    Quand la quantité de l'onglet Stock Actuel est <=10 sinon masquer mon message.

    je sais mettre en place l'alerte, mais je ne sais pas sur quelle étiquette je dois appliquer ma macro.
    j'ai essayé de mettre ma macro sur "txtStock" et j'ai un Bug qui me bloque totalement le fonctionnement
    de la base.

    Pouvez-vous svp m'aider dans ce sens.

    Merci d'avance pour votre aide.
    Cordialement
    Patner

  2. #2
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 134
    Points : 84 788
    Points
    84 788
    Billets dans le blog
    15
    Par défaut


    Il faut compléter ce code de Claude comme suit :

    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
    21
    22
    23
    Private Sub CboArticle_AfterUpdate()
      Dim Alerte As String
      'Afficher l'historique
      Me.CTNRsfSortiesDetail.Form.Requery
     'Rendre visibles les contrôles pour l'encodage d'une nouvelle sortie
      Me.txtDate.Visible = True
      Me.txtQuant.Visible = True
      Me.txtImputation.Visible = True
      Me.txtDate = Null
      Me.txtQuant = Null
      Me.txtImputation = Null
      DoCmd.GoToControl "txtDate"
      'Afficher le stock actuel de cet article
      Me.txtStock = StockADate(Me.CboArticle, Format(Date, "mm/dd/yyyy"))
      'Afficher le CMUP actuel et la dernière entrée de cet article
      Me.txtDernEntree = DLookup("EntreeDate", "rDernEntree")
      Me.txtCMUP = DLookup("CMUP", "rDernEntree")
      'Vérifier si le niveau du stock de l'article est inférieur ou égal à 10
      If Nz(Me.txtStock, 0) <= 10 Then
      Alerte = MsgBox("Stock insuffisant pour cet article", vbCritical + vbOKOnly, "Avertissement")
      End If
     
    End Sub
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 465
    Points : 549
    Points
    549
    Par défaut
    Bonjour,

    Une possibilité serait de rajouter sur l'événement onOpen ou onLoad du formulaire un peu de code VBA pour gérer le message. L'idée c'est que lorsque l'utilisateur appelle ce formulaire et qu'il se charge, au moment où il se charge il vérifie la quantité actuellement en stock.

    Voici une proposition :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Private Sub Form_Load()
     
    'Ces quelques lignes vont s'executer à l'ouverture 'Load' du formulaire c'est-à-dire avant même que l'utilisateur ne lise le contenu.
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim strSQL As String
    Dim iStockActuel As Integer
    Dim iStockMin As Integer
     
    'supposons que le stock Actuel soit dans la table [100 TBL STOCK]
    'Supposons que la table [100 TBL STOCK] contienne 2 colonnes : PRODUIT et QUANT
     
    'Je fais ici une petite query pour extraire la quantité actuelle de ce produit.  Je suppose que ce produit est le champ Text0 sur le formulaire.
    strSQL = "SELECT PRODUIT, QUANT "
    strSQL = strSQL & "FROM [100 TBL STOCK] "
    strSQL = strSQL & "WHERE (PRODUIT = '" & Me.Text0.Value & "')"
     
    Set db = Application.CurrentDb
    Set rst = db.OpenRecordset(strSQL)
     
    iStockActuel = rst!QUANT
     
    Set rst = Nothing           'supprimer le pointeur si on ne l'utilise plus.
    Set db = Nothing
     
     
    'je teste la quantité actuelle en stock.
    If iStockActuel < 10 Then
        Me.lblMsgAlerte.Caption = "ALERTE !!!!! Il faut réapprovisionner le stock !"
        Me.lblMsgAlerte.ForeColor = 255          'Rouge
        Me.lblMsgAlerte.Visible = True
    Else
        Me.lblMsgAlerte.Visible = False         'ne pas faire apparaître le message
    End If
     
     
    End Sub

    C'est très approximatif. Il faut rajouter la gestion d'erreur et tout ce dont vous avez besoin.



    Si l'utilisateur ne recharge pas le formulaire durant ses manipulations, le message ne sera pas réévalué à chaque fois. Il faut alors placer ce genre de code non pas sur le formulaire mais sur le champ qui est manipulé par l'utilsateur. Par exemple, la première ligne de code deviedra
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub ARTICLE_Change()
    si c'est le champ ARTICLE qui est manipulé par l'utilisateur.


    Bon Week-end.

  4. #4
    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
    Bonjour,

    Je ferais comme ceci :

    - dans la table tArticles, ajouter une colonne StockAlerte qui te permettrait de définir, article par article, le seuil à partir duquel il faut réapprovisionner ;
    - dans le code associé au clic du bouton Enregistrer, ajouter quelques instructions pour vérifier que le stock mis à jour reste supérieur au seuil. Dans le cas contraire, afficher un message d'alerte ;
    - dans l'événement après mise à jour de CboArticle, les mêmes instructions.

    Es-tu à l'aise avec le VBA ?


    P.-S. Bonjour à Malick et PipoWIL qui ont posté pendant que je rédigeais mon message.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2014
    Messages : 5
    Points : 7
    Points
    7
    Par défaut [AC-2010] message alerte (commande de stock)
    Bonjour, à tous,
    je vous remercie pour votre aide , néanmoins la solution la plus simple pour moi est celle proposée par Claude.
    Pour répondre à sa question, non je ne suis pas trop à l'aise avec le code VBA. Mais j’apprends vite.
    Je viens de rajouter à ma table article la colonne StockAlerte avec pour chaque article le seuil d'alerte.

    1/ je n'arrive pas à repérer le code associé au clic du bouton Enregistrer, je suppose qu'il est dans le Module mFonctions ou dans les requêtes?

    2/ comment ajouter quelques instructions pour vérifier que le stock mis à jour reste supérieur au seuil? je sais le faire sur Excel, mais pas dans Access en utilisant des conditions.

    3/ dans l'événement après mise à jour de CboArticle, les mêmes instructions?

    En gros je suis nul sous Access, mais je veux bien apprendre, je sais créer des tables, mettre en place des Macros,créer le modèle suivant la méthode Merise et les relations entre les tables.

    Je me suis dirigé vers Access la gestion de mon stock devient beaucoup plus fastidieux avec Excel.
    et la Base que Claude a développée est vraiment ce qu’il me faut
    Or mi que je dois ajouter une alerte pour me permettre de commander un ravitaillement, pour ne pas tomber en rupture de stock.

    Merci encore pour votre aide
    Cordialement
    Patner

  6. #6
    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
    Bonjour Patner,

    je n'arrive pas à repérer le code associé au clic du bouton Enregistrer, je suppose qu'il est dans le Module mFonctions ou dans les requêtes?
    Ouvre ton formulaire en mode construction, double-clique le bouton « Enregistrer » pour afficher les propriétés (onglet Événement)





    Clique alors sur les points de suspension à droite pour accéder au code.
    Je l’ai modifié comme ceci (24-29) :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Private Sub btEnregistrer_Click()
      Dim sSql As String
      Dim StockAlerte As Long
      'Est-ce complet ?
      If IsNull(Me.txtDate) Or Nz(Me.txtQuant, 0) = 0 Or Nz(Me.txtImputation, 0) = 0 Then
          MsgBox "Un des champs obligatoires n'est pas rempli", vbCritical
          Exit Sub
      End If
      'Maj tSorties
      sSql = "INSERT INTO tSorties ( SortieDate, SortieQuant, SortieImputation, CMUP, tArticlesFK ) " _
               & "SELECT #" & Format(Me.txtDate, "mm/dd/yy") & "# AS Expr1, " _
               & Me.txtQuant & " AS Expr2, " _
               & """" & Me.txtImputation & """ AS Expr3, " _
               & Replace(Me.txtCMUP, ",", ".") & " AS Expr4, " _
               & Me.CboArticle & " As Expr5;"
     
      DoCmd.SetWarnings False
      DoCmd.RunSQL sSql
      DoCmd.SetWarnings True
      'Réinitialiser pour une nouvelle sortie éventuelle
      Me.CTNRsfSortiesDetail.Requery
      Me.txtDate = Null: Me.txtQuant = Null: Me.txtImputation = Null
      Me.txtStock = StockADate(Me.CboArticle, Format(Date, "mm/dd/yyyy"))
      'Vérifier que le seuil n'est pas franchi
      StockAlerte = DLookup("StockAlerte", "tArticles", "tArticlePK=" & Me.CboArticle)
      If StockADate(Me.CboArticle, Date) <= StockAlerte Then
          MsgBox "Réapprovisionnez cet article !" & Chr(13) & Chr(10) _
                  & "Stock d'alerte : " & StockAlerte & "."
      End If
    End Sub
    En gros je suis nul sous Access, mais je veux bien apprendre, je sais créer des tables, mettre en place des Macros,créer le modèle suivant la méthode Merise et les relations entre les tables.
    Le VBA, c’est du mauvais anglais qui te permet de décupler tes possibilités, jette un œil sur ce tutoriel pour commencer ton apprentissage : http://heureuxoli.developpez.com/office/word/vba-all/

    et pour le reste :



    D'une manière générale, pour se documenter sur les propriétés d'un formulaire ou d'un état, ou de leurs contrôles :
    - afficher l'objet en mode construction ;
    - cliquer sur la propriété => elle se met en surbrillance ;
    - enfoncer la touche <F1>
    => l'aide Access s'ouvre à la bonne page.
    De même dans le code, placer le curseur de la souris et enfoncer F1.
    On peut aussi :
    • ouvrir l'aide <F1>, choisir l'onglet « Aide intuitive » et suivre les instructions ;
    • ouvrir la fenêtre d'exécution (<Ctrl> + G), saisir un mot-clé, y placer le curseur de la souris et enfoncer F1.

    Bonne continuation.

    En P.J. La db du tutoriel avec une alerte.
    Fichiers attachés Fichiers attachés
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2014
    Messages : 5
    Points : 7
    Points
    7
    Par défaut [AC-2010] message alerte (commande de stock)
    Merci Claude,
    laisse-moi te dire que tu es un As
    Je te remercie pour ces précieux conseils. En effet, si je m'y mets, je pourrais réaliser pas mal
    de choses avec Access, à dieu Excel.

    En effet j'avais fait un peu Access en cours, il y a bien longtemps.
    Mais j'ai tout oublié, il faut vraiment que je replonge le nez à nouveau dedans.

    merci à tous pour ce soutien intellectuel, merci à toute l'équipe de Développez.com

    Sans oublier mon ami Claude l'expert.
    Cordialement
    Patner

Discussions similaires

  1. [javascript] accents dans les message "alert&q
    Par logica dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 10/07/2008, 10h08
  2. Message d'alerte - gestion de stock
    Par Poisell dans le forum Requêtes et SQL.
    Réponses: 29
    Dernier message: 10/04/2008, 10h54
  3. Gros problème message alerte
    Par masseur dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 20/02/2006, 11h15
  4. Message alert sur plusieurs lignes
    Par jo281 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/01/2006, 16h56
  5. message : alert
    Par MANU_2 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 02/09/2005, 09h50

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