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

VBA Access Discussion :

Supprimer message : Impossible d'atteindre l'enregistrement spécifié


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Points : 41
    Points
    41
    Par défaut Supprimer message : Impossible d'atteindre l'enregistrement spécifié
    Bonjour,

    Dans un formulaire de consultation d'une table j'ai ajouté les boutons automatiques d'Access "Enregistrement suivant" et "Enregistrement précédent" or j'aimerais les travailler pour rendre le formulaire plus clair:

    Sur le premier enregistrement lorsque j'appuie sur le bonton "Enregistrement précédent" il me dit "Impossible d'atteindre l'enregistrement précédent"... normal. En faite j'aimerais modifier ce message pour qu'il soit plus clair et qu'il ressemble moins à un message de bug (je ne veux pas causer de palpitations à un utilisateur à tendance nerveux). Est-ce qu'il est possible de le traiter avec un code d'erreur et un On Error GoTo + Select Case ?

    De plus le dernier enregistrement est la ligne d'ajout... Comment faire pour que lorsque l'on appuie sur le bouton suivant depuis le dernier enregistrement "réel" Access affiche le message "Dernier enregistrement" au lieu d'afficher un enregistrement vide pour l'ajout ?

    Voila les deux lignes de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.GoToRecord , , acPrevious
     
    DoCmd.GoToRecord , , acNext
    Merci d'avance aux experts !

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,
    Est-ce qu'il est possible de le traiter avec un code d'erreur et un On Error GoTo + Select Case ?
    Oui, on peut mettre en place une gestion d'erreur.
    L'erreur levée a le numéro 2105.

    Exemple avec avec un bouton pour aller à l'enregistrement suivant :
    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
    Private Sub cmdAllerEnrSuivant_Click()
     
    On Error GoTo ErrH
     
    DoCmd.GoToRecord acActiveDataObject, , acNext
     
    ExitSub:
    Exit Sub
     
    ErrH:
    Select Case Err.Number
        Case 2105: Resume Next
    End Select
    MsgBox "Erreur N° " & Err.Number & " : " & Err.Description
    Resume ExitSub
    End Sub
    Comment faire pour que lorsque l'on appuie sur le bouton suivant depuis le dernier enregistrement "réel" Access affiche le message "Dernier enregistrement" au lieu d'afficher un enregistrement vide pour l'ajout ?
    Je me sert du recordset clone du formulaire, et je lui fait faire un MoveNext.
    Si la propriété EOF de ce recordset passe à True, c'est que j'étais sur le dernier enregistrement.
    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
    Private Sub cmdAllerEnrSuivant_Click()
    Dim rs As DAO.Recordset
     
    On Error GoTo ErrH
    ' Sortir Si le formulaire est sur un nouvel enregistrement
    If Me.NewRecord = True Then Exit Sub
     
    Set rs = Me.RecordsetClone
    ' Positionne recordset sur le même enregistrement que celui du formulaire
    rs.Bookmark = Me.Bookmark
    ' Essai d'aller à l'enregistrement suivant du recordset
    rs.MoveNext
    ' Si on n'est pas au dela du dernier enregistrement, effectuer le
    ' déplacement à l'enregistrement suivant dans le formulaire
    If Not rs.EOF Then
       DoCmd.GoToRecord acActiveDataObject, , acNext
    Else
       MsgBox "Pas d'enregistrement suivant.", , "Dernier enregistrement"
    End If
     
    ExitSub:
    Set rs = Nothing
    Exit Sub
     
    ErrH:
    Select Case Err.Number
        Case 2105: Resume Next
    End Select
    MsgBox "Erreur N° " & Err.Number & " : " & Err.Description
    Resume ExitSub
    End Sub
    A+

  3. #3
    Membre du Club Avatar de antoine dpt
    Inscrit en
    Juillet 2004
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 64
    Points : 59
    Points
    59
    Par défaut
    salut,

    pour empecher le formulaire d'aller a la ligne d'ajout il y a encore plus simple car tu peux avoir cela dans les propriete du formulaire.

    je ne l'ai connait plus par coeur mais ballade toi dans les proprietes du formulaire et il y a un truc du genre "ne pas accepter l'entree de nouveau enregistrement".

    Antoine

  4. #4
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 43
    Points : 51
    Points
    51
    Par défaut
    Voici les codes pour naviguer dans le fichier :

    On Error GoTo Err_GoToPrevious
    DoCmd.GoToRecord , , acPrevious
    Exit Sub
    Err_GoToPrevious:
    MsgBox "Vous êtes sur la 1ere fiche !", vbCritical, "Invalid Command"



    On Error GoTo Err_GoToNext
    DoCmd.GoToRecord , , acNext
    Exit Sub
    Err_GoToNext:
    MsgBox "Vous êtes sur la dernière fiche !", vbCritical, "Invalid Command"

Discussions similaires

  1. [AC-2007] Impossible d'atteindre l'enregistrement spécifié.
    Par joeymtl dans le forum IHM
    Réponses: 0
    Dernier message: 26/02/2010, 21h07
  2. Impossible d'atteindre l'enregistrement spécifié
    Par cotmar dans le forum Access
    Réponses: 6
    Dernier message: 17/05/2006, 14h45
  3. Réponses: 2
    Dernier message: 12/05/2006, 18h26
  4. Impossible d'atteindre l'enregistrement spécifié
    Par noname_971 dans le forum Access
    Réponses: 4
    Dernier message: 04/11/2005, 17h48
  5. SQL : Impossible d'atteindre l'enregistrement spécifié
    Par Farbin dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 30/09/2005, 17h01

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