Nombre total d'enregistrement

GDX Messages postés 239 Statut Membre -  
GDX Messages postés 239 Statut Membre -
Bonjour,

Je souhaite connaitre dans mon script vba l'enregistrement dans lequel se trouve l'utilisateur et le nombre total d'enregistrement.

Les numéros d'enregistrements sont présents en bas à gauche d'un formulaire pour ceux ne voient pas de quoi je parle.

Pour l'enregistrement courant, j'ai trouvé la fonction approprié, il s'agit de "CurrentRecord", mais pour le nombre max, je ne vois pas.

Merrci pour l'aide.

3 réponses

  1. blux Messages postés 5032 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,

    Me.RecordsetClone.recordcount
    1
  2. GDX Messages postés 239 Statut Membre 9
     
    Merci,

    C'est exactement ça.

    Cependant, j'ai un phénomène super étrange qui se produit.

    Private Sub Form_Current()
    
    If CurrentRecord = Total Then
        Suivant.Enabled = False
    Else
        Suivant.Enabled = True
    End If
    
    If CurrentRecord = 1 Then
        Precedent.Enabled = False
    Else
        Precedent.Enabled = True
    End If
    
    End Sub


    Ce code contrôle des boutons.
    Quand l'enregistrement courant atteint le dernier enregistrement, ça désactive le bouton "Suivant".
    Quand l'enregistrement courant atteint le premier enregistrement, ça désactive le bouton "Precedent".

    Ce code fonctionne correctement si je place un point d'arrêt en face du premier if et que j'exécute le programme en pas à pas.

    Sans le point d'arrêt le programme ne fonctionne pas les boutons sont toujours désactivés.

    On a l'impression que l'exécution du programme est trop rapide.

    Merci,
    0
    1. blux Messages postés 5032 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      As-tu mis les .enabled correctement dans le form_open ?
      Sinon, mets un msgbox "toto" en première ligne, ça t'aidera à savoir combien de fois on passe dans le code.
      0
    2. GDX Messages postés 239 Statut Membre 9
       
      J'ai mis le code dans Form_current et je viens de le rajouter dans le form_open, mais rien ne change, je problème persiste.

      Pour les Toto, c'est une bonne idée :
      - Il passe 1 fois dans form_open
      - Et 1 fois dans form_current
      0
    3. blux Messages postés 5032 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      Dans form_open, tu ne devrais avoir que suivant.enabled = true et precedent.enabled = false, puisque c'est la première fois.

      form_current devrait être appelé à chaque modif sur les records ou chaque changement de record.

      Par contre, où est calculée ta variable 'total' ? Quelle valeur a-t-elle ?
      0
    4. GDX Messages postés 239 Statut Membre 9
       
      Je vais essayer pour form_open

      Total est une erreur de ma part losque j'ai créé ce post, c'étais pour faire des essais.

      en réalité voici la ligne :
      If CurrentRecord = Me.RecordsetClone.recordcount Then
      0
  3. GDX Messages postés 239 Statut Membre 9
     
    Dans form_open, tu ne devrais avoir que suivant.enabled = true et precedent.enabled = false, puisque c'est la première fois.

    Ca ne marche toujours pas car le programme passe pas form_current qui remet suivant.enable à false.

    Par contre j'ai trouver un méthode qui fonctionne mais elle est vraiment mer*ique...

    Public Total As Double
    
    Private Sub Form_Load()
    DoCmd.GoToRecord , , acLast
    Total = CurrentRecord
    DoCmd.GoToRecord , , acFirst
    End Sub
    
    Private Sub Form_Current()
    If CurrentRecord = Total Then
        Suivant.Enabled = False
    Else
        Suivant.Enabled = True
    End If
    
    If CurrentRecord = 1 Then
        Precedent.Enabled = False
    Else
        Precedent.Enabled = True
    End If
    
    End Sub


    Je laisse ce post ouvert si jamais qqun arrive à faire fonctionner le code avec la méthode : Me.RecordsetClone.recordcount

    Merci,

    GDX
    0