Rafraichissement de formulaire

Résolu
spiritspy Messages postés 120 Statut Membre -  
spiritspy Messages postés 120 Statut Membre -
Bonjour,
Dans un formulaire de Stock, j'ai mit des cases à cocher qui affichent ou cachent des zones de textes:
    If Consommable.Value = True Then
        [N_Serie].Visible = False
        [N_Bureau].Visible = False
    Else
        [N_Serie].Visible = True
        [N_Bureau].Visible = True
    End If

Et pour rafraichir mon formulaire:
Private Sub Consommable_AfterUpdate()
    
    Me.Requery
    
End Sub

Mais en fait, le rafraichissement me repositionne sur mon premier enregistrement, quelqu'un peut-il me guider, s'il vous plaît?
Configuration: Windows XP
Firefox 2.0.0.16

2 réponses

  1. Prog44 Messages postés 17 Date d'inscription   Statut Membre 3
     
    bonjour,

    Il suffirait peut-être d'enregistrer la valeur du bookmark dans une variable avant le requery afin de te repositionner dessus après le requery.
    -1
  2. spiritspy Messages postés 120 Statut Membre 7
     
    Merci de ton information, mais même si je me débrouille, je ne connais pas cette manip., ni ne sais où le faire, pourrais tu m'expliquer ?

    Edit:
    C'est bon j'ai trouvé une formule:
    Sub sMajForm()
    Dim lngClé As Long
    Dim lngEnrActif As Long
    Dim rs As DAO.Recordset
    
    On Error GoTo GestErr
    
    'Désactive le rafraîchissement de l'écran
    Echo False
     
    'S'il n'y a pas d'enregistrement, on quitte la procédure
    If Me.RecordsetClone.RecordCount = 0 Then Exit Sub
    lngClé = Me!ChampCléPrimaire
    lngEnrActif = Me.CurrentRecord
    
    Me.Requery
    Set rs = Me.RecordsetClone
    With rs
     'S'il n'y a plus d'enregistrement, on quitte la procédure
      If rs.RecordCount = 0 Then Exit Sub
      .FindFirst "ChampCléPrimaire=" & lngClé
      Select Case .NoMatch
        Case True 'Si l'enregistrement qui était actif a disparu...
          DoCmd.GoToRecord , , acGoTo, lngEnrActif
        Case False
          Me.Bookmark = .Bookmark
      End Select
    End With
    rs.Close
    Set rs = nothing
    
    'Active le rafraîchissement de l'écran
    Echo True
    
    Exit Sub
    
    GestErr:
    Select Case Err
      Case 2105 'Si le numéro d'enregistrement n'est plus valide...
          'C'est qu'il y a moins d'enregistrements depuis le Requery,
          ' donc on active le dernier enregistrement
          DoCmd.GoToRecord , , aclast
      Case Else
        MsgBox Err.Description, Err.Number
    End Select
    rs.close
    Set rs = nothing
    
    'Active le rafraîchissement de l'écran
    Echo True
    
    End Sub
    

    Où ChampCléPrimaire est N° auto et ça remplace mon Me.Requery
    -1