Rafraichissement de formulaire

Résolu/Fermé
spiritspy Messages postés 118 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 13 août 2009 - 6 août 2008 à 11:57
spiritspy Messages postés 118 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 13 août 2009 - 6 août 2008 à 12:46
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?

2 réponses

Prog44 Messages postés 17 Date d'inscription jeudi 31 juillet 2008 Statut Membre Dernière intervention 24 septembre 2008 3
6 août 2008 à 12:22
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
spiritspy Messages postés 118 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 13 août 2009 7
6 août 2008 à 12:46
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