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 :

Rafraichissement sous formulaire


Sujet :

IHM

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 814
    Points : 231
    Points
    231
    Par défaut Rafraichissement sous formulaire
    J'ai un sous formulaire basé sur une requete avec une jointure :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TAB_INSERTIONS_Hist.N°Insertion, TAB_INSERTIONS_Hist.NUM_Archives, TAB_INSERTIONS_Hist.DATE_CLOTURE, TAB_Operateurs.Prenom,
    TAB_Operateurs.Nom 
    FROM TAB_Operateurs RIGHT JOIN TAB_INSERTIONS_Hist ON TAB_Operateurs.ID_Op = TAB_INSERTIONS_Hist.ID_Op 
    ORDER BY TAB_INSERTIONS_Hist.DATE_CLOTURE DESC;
    Quand je clique sur un bouton du formulaire principal j'insère une ligne dans la table Tab_Insertions_Hist mais les infos basées sur la table liée (Tab_Operateurs) ne se mettent pas à jour malgré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!F_Insert.Sous_Formulaire_Insertions.Form.Refresh
    Quand je ferme le formulaire principal et que je le réouvre la requete fonctionne et le sous formulaire se met à jour.
    D'autre part quand je change la source du sous formulaire :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM TAB_INSERTIONS_Hist
    ORDER BY TAB_INSERTIONS_Hist.Date_Cloture DESC , TAB_INSERTIONS_Hist.N°Insertion;
    basé sur une table sans jointure les infos se mettent à jour dans le sous formulaire
    J'ai essayé de raffraichir le sous formulaire sur tous ou presque les évènements rien y fait !!!
    SI quelqu'un a une idée MERCI

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 366
    Points : 23 834
    Points
    23 834
    Par défaut
    Bonjour.

    Essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!F_Insert.Sous_Formulaire_Insertions.Form.Requery
    Dans le code utilisé par ton bouton juste après les instructions pour l'ajout.

    A+

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 814
    Points : 231
    Points
    231
    Par défaut
    Merci pour ton aide hélas ça ne marche pas, ça doit venir de la jointure, pourtant la requête fonctionne...
    Si tu as des idées MERCI

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 840
    Points : 14 944
    Points
    14 944
    Par défaut
    bonsoir,
    Quand je clique sur un bouton du formulaire principal j'insère une ligne dans la table Tab_Insertions_Hist mais les infos basées sur la table liée (Tab_Operateurs) ne se mettent pas à jour malgré
    peux-tu poster le code du bouton ?

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 366
    Points : 23 834
    Points
    23 834
    Par défaut
    Bonjour.

    Étrange.

    Essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!F_Insert.Sous_Formulaire_Insertions.Form.Recordsource=Forms!F_Insert.Sous_Formulaire_Insertions.Form.Recordsource
    Ça a l'air idiot come instruction mais dans certains cas c'est mieux que .Requery.

    A+

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 814
    Points : 231
    Points
    231
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    bonsoir,
    peux-tu poster le code du bouton ?
    ******************************************
    Voici le code :
    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
    Private Sub Commande62_Click()
    '""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    
    Dim bd As DAO.Database
    Dim RecSet, rs As DAO.Recordset
    Dim var_DM As String
    Dim var_Option As Boolean
    Dim csql5, csql6, csql7, cSQL As String
    Dim Var_succes As Integer
    Set bd = CurrentDb
    Set RecSet = bd.OpenRecordset("TAB_Insertions_Hist", dbOpenTable)
    Me.Étiquette74.Visible = True
    Texte60.Visible = False
    Texte36.Visible = False
    Texte6.Visible = False
    Texte27.Visible = False
    Texte11.Visible = False
    Étiquette37.Visible = False
    Étiquette8.Visible = False
    Modifiable64.Visible = False
    RecSet.index = "N°Insertion"   'Vérifier si l'Insertion n'est pas déjà existante dans la Table TAB_Insertions_Hist cloturée en échec
    RecSet.Seek "=", Me.Texte36.Value
    If Not (RecSet.NoMatch) And Not IsNull(val(Me.Texte36)) Then 'si je la trouve dans la Table TAB_Insertions_Hist
    
      csql7 = "delete from [TAB_Insertions_Hist] "
      csql7 = csql7 & "where TAB_Insertions_Hist.N°Insertion ='" & Me.Texte36.Value & "'"
      DoCmd.RunSQL csql7
    End If
    
    'ICI le code de l'Insertion dans la table TAB_Insertions_Hist 
    csql5 = "insert into [TAB_Insertions_Hist] ([N°Insertion],[Num_Archives],[DATE_Cloture],[ID_Op],[Succes])" & _
        "values ("
              csql5 = csql5 & Chr(34) & Texte36.Value & Chr(34) ' N° Insertion (Numérique)
              csql5 = csql5 & "," & "'" & Texte6.Value & "'" ' N° Dossier (Texte)
              csql5 = csql5 & ",#" & Format(DATE, "MM/DD/YYYY") & "#" '[DATE_Cloture]
              csql5 = csql5 & "," & Chr(34) & Modifiable64.Value & Chr(34)   'Opérateur Texte
              csql5 = csql5 & "," & Option75.Value  ' Succes OUI (-1)/NON (0)
              csql5 = csql5 & ");"
    DoCmd.RunSQL csql5
    Forms!F_Insert.Sous_Formulaire_Insertions.Form.RecordSource = Forms!F_Insert.Sous_Formulaire_Insertions.Form.RecordSource
    
    DoCmd.Requery
    
    
    
    
    If Me.Option75 = -1 Then ' Si Cloture en succes
      DoCmd.RunCommand acCmdSaveRecord
      csql6 = "delete from [TAB_Insertions] "
      csql6 = csql6 & "where TAB_Insertions.N°Insertion ='" & Me.Texte36.Value & "'"
      DoCmd.RunSQL csql6
    
    
      Forms!F_Insert.Form.Refresh 'Formulaire Insertions
      Forms!F_Insert.Sous_Formulaire_Insertions.Form.Refresh 'Sous Formulaire Insertions
      
     
    
      
      
      
      
      Forms!F_Insert.Sous_Formulaire_Insertions.Form.RecordSource = Source
        Else
      Me.Form.Requery 'ici pb Form_F_Insert_Clot
      Forms!F_Insert.Sous_Formulaire_Insertions.Form.Refresh 'Sous Formulaire Insertions
    End If
    Texte60.Visible = False
    Texte36.Visible = False
    Texte6.Visible = False
    Texte27.Visible = False
    Texte11.Visible = False
    Étiquette37.Visible = False
    Étiquette8.Visible = False
    Étiquette65.Visible = False
    Modifiable64.Visible = False
    End Sub
    Je t'ai mis en commentaire et en gras le code qui insère dans la table Tab_Insertions_HIST
    Merci et à+

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 814
    Points : 231
    Points
    231
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    Étrange.

    Essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!F_Insert.Sous_Formulaire_Insertions.Form.Recordsource=Forms!F_Insert.Sous_Formulaire_Insertions.Form.Recordsource
    Ça a l'air idiot come instruction mais dans certains cas c'est mieux que .Requery.

    A+
    **********************
    Merci non ca marche pas .

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 840
    Points : 14 944
    Points
    14 944
    Par défaut
    bonjour,
    une précision: à quel endroit du formulaire se fait la saisie de données, formulaire ou sous-formulaire ?
    Si c'est dans le formulaire, il faut forcer l'enregistrement de la saisie en cours, on le voit lorsqu'on a le sélecteur d'enregistrements visible, il y a un petit crayon qui apparait lorsqu'on saisit les données, tant que ce petit crayon est visible, l'enregistrement n'existe que virtuellement:

    Nom : _0.JPG
Affichages : 91
Taille : 13,1 Ko

    met l"instruction Me.Requery en début de code sur le bouton Commande62, cela forcera l'enregistrement des données.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 814
    Points : 231
    Points
    231
    Par défaut
    Merci pour ton aide la saisie se fait au niveau du sous-formulaire, l'action d'insertion de ligne dans la table dans le formulaire, mais ca vient pas de la car le compteur d'enregistrement s'incrémente aussitot(dans le sous formulaire) et il n'y a pas de petit crayon.
    J'ai réglé mon problème en recréant un sous formulaire avec la même source de données et là maintenant ça marche, si tu veux savoir pourquoi j'avoue je sais pas, disons que le premier était un sous formulaire que j'avais créé il y a quelque temps avec une source de données liée à une table quand j'ai voulu lui attribuer cette source avec une jointure là est survenu le problème.
    Voilà Merci encore à +

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

Discussions similaires

  1. [AC-2013] Rafraichissement sous formulaire
    Par dodo28 dans le forum IHM
    Réponses: 11
    Dernier message: 07/12/2015, 14h43
  2. [AC-2010] Rafraichissement Sous-formulaire sur liste liée
    Par sardaucar dans le forum IHM
    Réponses: 8
    Dernier message: 06/11/2013, 15h23
  3. mise a jour/rafraichissement sous-formulaire
    Par pikameuh dans le forum IHM
    Réponses: 1
    Dernier message: 04/06/2011, 07h50
  4. rafraichissement sous-formulaire
    Par schventdavid dans le forum IHM
    Réponses: 8
    Dernier message: 22/02/2007, 09h27
  5. Rafraichissement de sous formulaire en mode ajout.
    Par olivll dans le forum Access
    Réponses: 6
    Dernier message: 11/10/2005, 10h19

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