Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Repérage dernier enregistrement

6 réponses
Avatar
Goupil
Du forum, bonjour,

Ma mémoire me joue des tours, je ne me rappelle plus comment repérer le
dernier enregistrement d'un formulaire en VBA.

Merci à ceux qui peuvent rafraîchir ma pauvre mémoire.

Goup'

6 réponses

Avatar
3stone
Salut,

Goupil wrote:
Ma mémoire me joue des tours, je ne me rappelle plus comment repérer
le dernier enregistrement d'un formulaire en VBA.




A condition que la source soit triée (sinon c'est alléatoire...)

Si l'identifiant est un NuméroAuto (ID)

Dim lgDernier As Long

With Me.RecordsetClone
if Not .EOF then
.moveLast
lgDernier = ID
end if
End With

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Goupil
Merci pierre, d'avoir éclairé ma faible lanterne ;-)

Goup'

"3stone" a écrit dans le message de news:
uHQrD%
Salut,

Goupil wrote:
Ma mémoire me joue des tours, je ne me rappelle plus comment repérer
le dernier enregistrement d'un formulaire en VBA.




A condition que la source soit triée (sinon c'est alléatoire...)

Si l'identifiant est un NuméroAuto (ID)

Dim lgDernier As Long

With Me.RecordsetClone
if Not .EOF then
.moveLast
lgDernier = ID
end if
End With

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)



Avatar
Goupil
Bonsoir Pierre, et tout le monde...

Je viens de de vérifier la routine que tu m'as gentiment envoyée, mais elle
ne correspond pas exactement à ce que je recherche.
En fait, je voudrais simplement désactiver mon bouton "suivant" quand le
formulaire est au dernier enregistrement.
Je crois me souvenir (en access 97) qu'il y a une solution plus simple pour
repérer qu'on est bien sur le dernier enregistrement de la requête/table,
source de ce formulaire.

Je ne me rappelle plus <:-(

Goup'

"3stone" a écrit dans le message de news:
uHQrD%
Salut,

Goupil wrote:
Ma mémoire me joue des tours, je ne me rappelle plus comment repérer
le dernier enregistrement d'un formulaire en VBA.




A condition que la source soit triée (sinon c'est alléatoire...)

Si l'identifiant est un NuméroAuto (ID)

Dim lgDernier As Long

With Me.RecordsetClone
if Not .EOF then
.moveLast
lgDernier = ID
end if
End With

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)



Avatar
Gilbert
Bonjour,

Voici ce que j'utilise pour activer ou désactiver des boutons de déplacement
personnalisés

With Me.RecordsetClone
.Bookmark = Me.Bookmark
If .AbsolutePosition = 0 Then
Me.CmdPrec.Enabled = False
Else
Me.CmdPrec.Enabled = True
End If
If .AbsolutePosition + 1 = .RecordCount Then
Me.CmdSuiv.Enabled = False
Else
Me.CmdSuiv.Enabled = True
End If
End With


--
Cordialement,

Gilbert


"Goupil" a écrit dans le message de
news:4ae6167f$0$918$
Bonsoir Pierre, et tout le monde...

Je viens de de vérifier la routine que tu m'as gentiment envoyée, mais


elle
ne correspond pas exactement à ce que je recherche.
En fait, je voudrais simplement désactiver mon bouton "suivant" quand le
formulaire est au dernier enregistrement.
Je crois me souvenir (en access 97) qu'il y a une solution plus simple


pour
repérer qu'on est bien sur le dernier enregistrement de la requête/table,
source de ce formulaire.

Je ne me rappelle plus <:-(

Goup'

"3stone" a écrit dans le message de news:
uHQrD%
> Salut,
>
> Goupil wrote:
>> Ma mémoire me joue des tours, je ne me rappelle plus comment repérer
>> le dernier enregistrement d'un formulaire en VBA.
>
>
> A condition que la source soit triée (sinon c'est alléatoire...)
>
> Si l'identifiant est un NuméroAuto (ID)
>
> Dim lgDernier As Long
>
> With Me.RecordsetClone
> if Not .EOF then
> .moveLast
> lgDernier = ID
> end if
> End With
>
> --
> A+
> Pierre (3stone) Access MVP
> Perso: http://www.3stone.be/
> MPFA: http://www.mpfa.info/ (infos générales)
>




Avatar
Gilbert
Précision : c'est à mettre dans l'évènement Form_Current de ton formulaire.

Tu peux aussi l'écrire de manière plus concise :

With Me.RecordsetClone
.Bookmark = Me.Bookmark
Me.CmdPrec.Enabled = Not (.AbsolutePosition = 0)
Me.CmdSuiv.Enabled = Not (.AbsolutePosition + 1 = .RecordCount )
End With


--
Cordialement,

Gilbert


"Gilbert" a écrit dans le message de
news:
Bonjour,

Voici ce que j'utilise pour activer ou désactiver des boutons de


déplacement
personnalisés

With Me.RecordsetClone
.Bookmark = Me.Bookmark
If .AbsolutePosition = 0 Then
Me.CmdPrec.Enabled = False
Else
Me.CmdPrec.Enabled = True
End If
If .AbsolutePosition + 1 = .RecordCount Then
Me.CmdSuiv.Enabled = False
Else
Me.CmdSuiv.Enabled = True
End If
End With


--
Cordialement,

Gilbert


"Goupil" a écrit dans le message de
news:4ae6167f$0$918$
> Bonsoir Pierre, et tout le monde...
>
> Je viens de de vérifier la routine que tu m'as gentiment envoyée, mais
elle
> ne correspond pas exactement à ce que je recherche.
> En fait, je voudrais simplement désactiver mon bouton "suivant" quand le
> formulaire est au dernier enregistrement.
> Je crois me souvenir (en access 97) qu'il y a une solution plus simple
pour
> repérer qu'on est bien sur le dernier enregistrement de la


requête/table,
> source de ce formulaire.
>
> Je ne me rappelle plus <:-(
>
> Goup'
>
> "3stone" a écrit dans le message de news:
> uHQrD%
> > Salut,
> >
> > Goupil wrote:
> >> Ma mémoire me joue des tours, je ne me rappelle plus comment repérer
> >> le dernier enregistrement d'un formulaire en VBA.
> >
> >
> > A condition que la source soit triée (sinon c'est alléatoire...)
> >
> > Si l'identifiant est un NuméroAuto (ID)
> >
> > Dim lgDernier As Long
> >
> > With Me.RecordsetClone
> > if Not .EOF then
> > .moveLast
> > lgDernier = ID
> > end if
> > End With
> >
> > --
> > A+
> > Pierre (3stone) Access MVP
> > Perso: http://www.3stone.be/
> > MPFA: http://www.mpfa.info/ (infos générales)
> >
>
>




Avatar
Goupil
Voilà qui complète la réponse de Pierre.
Merci Gilbert !

Goup'

"Gilbert" a écrit dans le message de news:

Bonjour,

Voici ce que j'utilise pour activer ou désactiver des boutons de
déplacement
personnalisés

With Me.RecordsetClone
.Bookmark = Me.Bookmark
If .AbsolutePosition = 0 Then
Me.CmdPrec.Enabled = False
Else
Me.CmdPrec.Enabled = True
End If
If .AbsolutePosition + 1 = .RecordCount Then
Me.CmdSuiv.Enabled = False
Else
Me.CmdSuiv.Enabled = True
End If
End With


--
Cordialement,

Gilbert


"Goupil" a écrit dans le message de
news:4ae6167f$0$918$
Bonsoir Pierre, et tout le monde...

Je viens de de vérifier la routine que tu m'as gentiment envoyée, mais


elle
ne correspond pas exactement à ce que je recherche.
En fait, je voudrais simplement désactiver mon bouton "suivant" quand le
formulaire est au dernier enregistrement.
Je crois me souvenir (en access 97) qu'il y a une solution plus simple


pour
repérer qu'on est bien sur le dernier enregistrement de la requête/table,
source de ce formulaire.

Je ne me rappelle plus <:-(

Goup'

"3stone" a écrit dans le message de news:
uHQrD%
> Salut,
>
> Goupil wrote:
>> Ma mémoire me joue des tours, je ne me rappelle plus comment repérer
>> le dernier enregistrement d'un formulaire en VBA.
>
>
> A condition que la source soit triée (sinon c'est alléatoire...)
>
> Si l'identifiant est un NuméroAuto (ID)
>
> Dim lgDernier As Long
>
> With Me.RecordsetClone
> if Not .EOF then
> .moveLast
> lgDernier = ID
> end if
> End With
>
> --
> A+
> Pierre (3stone) Access MVP
> Perso: http://www.3stone.be/
> MPFA: http://www.mpfa.info/ (infos générales)
>