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

VBA Access Discussion :

Afficher le résultat d'une fonction dans un sous formulaire [AC-2016]


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 570
    Points
    570
    Par défaut Afficher le résultat d'une fonction dans un sous formulaire
    Bonjour, je débute encore ...

    J'ai une fonction publique :
    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
    Public Function TypeSemaineDate(dt As Date) As String
     
    Dim j As Long
    Dim dt1 As Date
    Dim db As DAO.Database
    Dim rsPTS As DAO.Recordset
     
    Set db = CurrentDb
    Set rsPTS = db.OpenRecordset("select * from T_ParamTypeSemaine INNER JOIN T_MagasinCourant ON T_ParamTypeSemaine.Magasin=[T_MagasinCourant].[Magasin] ;")
     
    dt1 = dt - Weekday(dt, vbMonday) + 1
    j = NumSemaine(dt1)
    MsgBox j ' pour test
     
    TypeSemaineDate = rsPTS.Fields("Semaine" & j)
    MsgBox TypeSemaineDate ' pour test
     
    End Function
    Le but est de retourner une valeur A,B,C ou D en fonction du type de semaine indiqué dans une table par rapport au numéro de semaine.

    Cette fonction donne bien le résultat escompté .

    Dans le planning semaine, composé d'un formulaire [F_PlanningSemaine] et d'un sous formulaire [SF_PlanningSemaine] Je souhaite afficher dans le sous formulaire la valeur de ma fonction TypeSemaineDate, en fonction de la date de la semaine affichée à l'ecran.

    Pour ce faire , j'ai créé une zone de texte dans mon sous formulaire appelée "TypeSemaine"

    Dans le code du sous formulaire en open, j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Open(Cancel As Integer)
     
    Me.TypeSemaine = TypeSemaineDate(Nz(Forms!F_PlanningSemaine.DateD, 0))
    Le résultat est celui attendu.
    Le souci est qu'une fois le planning hebdomadaire ouvert, si je change de semaine, ma zone de texte "TypeSemaine" ne se met pas à jour.

    Pour changer de semaine je clique sur le bouton CmdSuivant ce qui déclenche le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CmdSuivant_Click()
     
    Me.DateD.Value = CDate(Me.DateD.Value) + 7
    MajPlanningSemaine
     
    End Sub
    dans la fonction MajPlanningSemaine j'ai ajouté du code pour que la valeur TypeSemaine soit mise à jour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Sub MajPlanningSemaine()
    Dim j As Integer, i As Long, k As Long
    Dim DateJ As Date, NS As Long, nbC As Long, nbA As Long, nbP As Long, TypeSemaine As String ' pour test
     
     
    DateJ = CDate(Forms!F_PlanningSemaine!DateD)
    TypeSemaine = TypeSemaineDate(Nz(DateJ, 0)) ' pour test
    MsgBox TypeSemaine 'pour test
    J'obtiens bien la valeur escomptée dans ma msgbox, mais ma zone de texte ne se met pas à jour..

    Je suppose que la solution doit être toute bête mais j'ai beau me creuser la tête je ne vois pas..

    Merci d'avoir lu jusque là et pour votre aide aussi

  2. #2
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 570
    Points
    570
    Par défaut
    Bon, j'ai fini par trouver, dans la fonction MajPlanningSemaine j'ai modifié le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TypeSemaine = TypeSemaineDate(Nz(DateJ, 0))
    MsgBox TypeSemaine
    Forms!F_PlanningSemaine!SF_PlanningSemaine.Form("TypeSemaine").Value = TypeSemaine
    et cela fonctionne très bien comme ça.
    Je met résolu

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/04/2014, 15h46
  2. Afficher le résultat d'une fonction dans un tableau
    Par aminaloli dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/08/2012, 10h21
  3. Afficher le résultat d'une fonction dans une JList
    Par daviddu54 dans le forum Composants
    Réponses: 10
    Dernier message: 01/10/2008, 14h53
  4. Afficher le résultat d'une fonction dans une comboBox
    Par poussin_44 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 10/07/2007, 15h06
  5. Réponses: 3
    Dernier message: 25/11/2005, 14h51

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