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

IHM Discussion :

[AC-2013] Résultat d'une fonction VBA sur un formulaire unique ou discontinu


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2016
    Messages : 17
    Points : 13
    Points
    13
    Par défaut [AC-2013] Résultat d'une fonction VBA sur un formulaire unique ou discontinu
    Bonjour,

    J'aimerais, dans une gestion des stocks, à l'aide du super tutoriel de Claude Leloup http://claudeleloup.developpez.com/t...tion-de-stock/ créer un formulaire dans lequel j'affiche uniquement les produits dont le stock actuel est inférieur au stock limite.
    Dans ce cas, j'ai un formulaire avec un bouton "Actualiser" à l'en-tête et en détail la description des différents articles, avec notamment le stock limite (donnée de ma table tArticles) et le stock actuel, calculé à l'aide d'une fonction VBA, qui se déclenche lorsque je clique sur le bouton.

    Mon problème est que, lorsque je suis sur en formulaire continus et que je clique sur "Actualiser", le stock actuel s'affiche mais reste bloqué à celui du premier, c'est-à-dire que j'ai n fois le même stock pour mes n articles (ce qui n'est pas le cas).
    Et lorsque je passe en formulaire unique, à chaque fois que je passe d'un article à l'autre, je dois re-cliquer sur le bouton "Actualiser" mais j'ai à chaque fois le bon stock.

    Ma question est donc de savoir comment faire en sorte de pouvoir cliquer une fois sur mon bouton, et que tous les stocks s'actualisent de la bonne façon, en formulaire continus?

    Merci d'avance,

    Cordialement

    EDIT : Après réflexion, je pense que le problème vient du fait que je ne peux pas (ou ne sais pas) sélectionner tous les enregistrements sur le formulaire en mode continus en même temps, est-il possible du coup de créer un code me permettant de les sélectionner et actualiser un-par-un?

  2. #2
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Points : 356
    Points
    356
    Par défaut
    Salut,

    Utilise le RecordSet pour sélectionner les enregistrement un par un ou alors fais le calcul dans ta requête à l'aide de fonction ou d'une sous-requête.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2016
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Merci de ta réponse, je ne connais pas le Recordset j'ai donc regardé rapidement sur le forum et le site, et j'en suis arrivé à utiliser ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set Recordset = Me.Recordset
    While Not Recorset.EOF
    instruction...
    Recordset.MoveNext
    Wend
    Mon enregistrement est bien parcouru, sauf qu'à la place d'avoir pour tous mes stocks actuel la valeur du premier Article, j'ai la valeur du dernier car les enregistrements ont étés parcourus jusqu'à obtenir le dernier.

    Mon instruction est peut être trop simple?...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.txtStock = StockADate(txtArticleCode, Format(Date, "mm/dd/yyyy"))
    Je ne sais pas si le problème vient donc le mon instruction qui n'est pas assez complète ou incorrecte, ou de mon Recordset...

  4. #4
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Points : 356
    Points
    356
    Par défaut
    Tu peux utiliser une boucle et un traitement simple comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set Recordset = TonFormulaire.Recordset
     
    Recordset.MoveFirst
     
    Do
    TonFomulaire!txtStock=StockADate(TonFomulaire!txtArticleCode, Format(Date, "mm/dd/yyyy"))
    Recordset.MoveNext
    Loop Until Recordset.EOF

  5. #5
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Points : 356
    Points
    356
    Par défaut
    Après si c'est simplement une fonction qui te fais ce calcul tu peux essayer de rajouter directement un champ dans ta requête par exemple R_txtStock : StockADate(txtArticleCode, Format(Date, "mm/dd/yyyy")) et ensuite mettre R_txtStock en contrôle de source de ton champ txtStock dans ton formulaire

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2016
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup

    Ton code me donnait le même résultat que le mien, mais la fonction dans la requête source a bien marché! Je ne savais même pas qu'on pouvait utiliser les fonctions du module VBA dans les requêtes, merci beaucoup

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

Discussions similaires

  1. création d'une fonction min sur vba
    Par lilou31330 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/12/2012, 23h14
  2. [XL-2003] Appeler une fonction Javascript sur un site depuis VBA
    Par zneidi77 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/06/2012, 09h37
  3. Réponses: 0
    Dernier message: 16/03/2012, 10h03
  4. Réponses: 3
    Dernier message: 22/09/2010, 22h00
  5. Réponses: 4
    Dernier message: 03/04/2007, 17h45

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