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 :

Maj sous-formulaire


Sujet :

IHM

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Par défaut Maj sous-formulaire
    Bonsoir

    J’ai un formulaire comprenant un contrôle onglet de trois pages et un sous-formulaire.

    Le code suivant me permet de filtrer une rqt générale, mais lorsque je passe d’une page à l’autre le sous-formulaire ne se met pas à jour.

    Merci pour votre aide

    Salutations

    Jacques


    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    Private Sub CtlTab48_Change()
    Dim strWhere As String
    On Error GoTo gestionerreurs
    '--- On déclare les variables
         Dim strSQL As String
         Dim qdf1 As QueryDef
         Dim qdf2 As QueryDef
         Dim A As String
         Dim pos As Long
     
    '--- On ouvre les deux requêtes
     
         Set qdf1 = CurrentDb.QueryDefs("rqt General Bis")
         Set qdf2 = CurrentDb.QueryDefs("rqt General")
    '--- On efface le where de qdf
         qdf2.SQL = qdf1.SQL
         qdf1.Close
         Set qdf1 = Nothing
     
    '--- On crée un nouveau where
         strWhere = " WHERE ("
    '--- Liste de l'assemblée générale
         If Me!CtlTab48 < 1 Then
     
           Select Case Right(strWhere, 1)
             Case Is = "("
                strWhere = strWhere & "[Présence]="
        End Select
        End If
     
         If Me!CtlTab48 = 1 Then
     
           Select Case Right(strWhere, 1)
             Case Is = "("
                strWhere = strWhere & "[Présence]=true"
        End Select
        End If
     
          If Me!CtlTab48 > 1 Then
     
           Select Case Right(strWhere, 1)
             Case Is = "("
                strWhere = strWhere & "[Présence]="
        End Select
        End If
     
    '--- Mise en place du where
         strWhere = strWhere + " ) order by [tbl adhérent].réfposte DESC;"         'On ferme la parenthèse du Where et on ajoute le trie "Order By"
            If strWhere <> " WHERE ( ) order by [tbl adhérent].réfposte DESC;" Then
             Debug.Print strWhere
     
    '--- Cas ou on à sélectionné au moins un critère
         A = qdf2.SQL             ' copie le contenu de la requete dans A
        'Debug.Print A
         A = Replace(A, ";", " ") 'On surprime le ";" qui se trouve à la fin de la requete et qui indique que la requete est fini
         A = Trim(A)              'On suprime les espace dans les coté de la requete [facultatif]
        Debug.Print A
     
    '--- On ajoute le where
         qdf2.SQL = A + strWhere
         Debug.Print qdf2.SQL
         Else
    '--- Cas ou on à pas sélectionné un critère
         strWhere = " order by [tbl adhérent].réfposte;"
         Debug.Print strWhere
         A = qdf2.SQL
         A = Replace(A, ";", " ")
         A = Trim(A)
         qdf2.SQL = A + strWhere
         Debug.Print qdf2.SQL
    End If
     
    Me.[sfm Adhérent].Requery
     
    qdf2.Close
    Set qdf2 = Nothing
    Exit Sub
    gestionerreurs:
    End Sub

  2. #2
    Membre Expert
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 885
    Par défaut
    Essai ça:
    sur l'evenement clic du control à onglet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me!NomDeTaSousForm.Requery
    J'espere que ça marchera.
    @+

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Par défaut
    Bonsoir Keita,

    Merci pour ta réponse, mais je ça ne fonctionne pas correctement.

    Une fois sur deux ça marche lorsque je passe de la page 1 à la page deux
    mais jamais lorsque je passe à la page 3.

    Salutations
    Jacques

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    le requery, c'est de la M...

    Ca ne marche en effet que quand acces veux bien.

    Par contre si tu redéfinis ton recordSource (même si c'est pour y remettre le même), ça marche à tous les coups.

    Exemple pour la mise à jour d'un sous-formulaire à partir du formulaire parent

    Me.mysubForm.form.recordsource="Select * from Mytable"

  5. #5
    Membre Expert
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 885
    Par défaut
    tu as mis ton code sur l'evenement change, comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CtlTab48_Change() 
    .................................
    ................................
    Essai sur l'event Clic pour voir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CtlTab48_Clic() 
    ................................
    ...............................
    @+

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Par défaut
    Bonsoir,

    Désolé, mais même avec vos remarques je n'arrive pas à solutionner mon problème.

    Est-ce le fait que le sous-formulaire soit sur la page onglet qui pose problème ?

    Salutations

    Jacques

Discussions similaires

  1. MAJ Sous Formulaires
    Par nenette69 dans le forum IHM
    Réponses: 2
    Dernier message: 01/02/2013, 13h41
  2. [AC-2007] problème de MAJ sous formulaire
    Par elric dans le forum IHM
    Réponses: 2
    Dernier message: 27/11/2009, 04h34
  3. maj sous-formulaire d'un onglet
    Par manu971 dans le forum IHM
    Réponses: 6
    Dernier message: 27/12/2007, 17h29
  4. [VBA] MAJ sous formulaire
    Par Frenchguy dans le forum IHM
    Réponses: 3
    Dernier message: 06/01/2007, 16h42
  5. MAJ Sous formulaire
    Par lolo5169 dans le forum IHM
    Réponses: 1
    Dernier message: 05/01/2007, 11h30

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