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 habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    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 éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    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 habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    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 confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    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 éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    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 habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    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