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 :

Aller au dernier enregistrement d'un sous-formulaire


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 172
    Points : 69
    Points
    69
    Par défaut Aller au dernier enregistrement d'un sous-formulaire
    Bonjour,

    Le Sous-formulaire "CoureursEngagésRSF" du formulaire principal "Engagements" est issu d'une requête dont la table "mère" est modifiée à partir d'une Sub déclenchée par un bouton du formulaire principal.
    Je voudrais me positionner au dernier enregistrement après chaque modification.

    Voici la fin de mon code qui met à jour le sous-formulaire:

    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
    With CoureursEngagésg
            .AddNew
            .CodeCoureur = EEngagements.[Codes]
            .Compétition = EEngagements.[SelectCC]
            If IsNull(EEngagements.[Dossard]) Or EEngagements.[Dossard] = "" Then
                EEngagements.[Dossard] = ChercheDossardSérie(EEngagements.[SelectCC])
            End If
            .Dossard = EEngagements.[Dossard]
        On Error GoTo Err
            .Update
            MAJFormCE
            Exit Sub
        End With
    Err: MsgBox ("Ce Coureur est déjà ENGAGE dans la course " & EEngagements.[SelectCC])
        On Error GoTo 0
    End Sub
    Sub MAJFormCE()
        Forms!Engagements.CoureursEngagésRSF.Requery
    End Sub
    Comment faire, merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 172
    Points : 69
    Points
    69
    Par défaut
    bonjour,

    Pas d'avis sur ce problème?
    Est-ce à dire qu'il n'est pas possible, en VBA, de naviguer dans un formulaire?

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    J'essaierai d'ajouter dans la sub MAJFormCE après le requery

    docmd.gotocontrol "le nom de ton sous-formulaire"
    docmd.gotorecord, acdataform, "le nom de ton sous-formulaire", acLast

    ok?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 172
    Points : 69
    Points
    69
    Par défaut
    A l' exécution de la deuxième ligne du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub MAJFormCE()
        Forms!Engagements.CoureursEngagésRSF.Requery
        DerEnregistrement
    End Sub
    Sub DerEnregistrement()
        DoCmd.GoToControl "CoureursEngagésRSF"
        DoCmd.GoToRecord , acDataForm, "CoureursEngagésRSF", acLast
    End Sub
    "Erreur d'exécution 13"
    " Incompatibilité du type"

    Peut être faut-il indiquer qu'il s'agit d'un sous formulaire, j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub MAJFormCE()
        Forms!Engagements.CoureursEngagésRSF.Requery
        DerEnregistrement
    End Sub
    Sub DerEnregistrement()
        DoCmd.GoToControl Forms!Engagements.CoureursEngagésRSF
        DoCmd.GoToRecord , acDataForm, Forms!Engagements.CoureursEngagésRSF, acLast
    End Sub
    Mais cela ne marche pas

  5. #5
    Membre régulier Avatar de voyou
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 129
    Points : 117
    Points
    117
    Par défaut
    Et tu peux pas le mettre directement dans la requête que tu veux le dernier enregistrement? Sur mes requêtes, si je veux la dernière location de tel client, je mets l'ID_Location avec critère "décroissant". Essayes toujours.

  6. #6
    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,

    Tu as une virgule en trop.
    De plus acDataForm ne peux pas être utilisé avec un sous-formulaire ouvert par le biais d'un contrôle sous-formulaire.

    essaie avec ça pour voir :
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub DerEnregistrement()
    Dim rs As DAO.Recordset
     
    Set rs = Me.CoureursEngagésRSF.Form.RecordsetClone
    If rs.RecordCount > 1 Then
       Me.CoureursEngagésRSF.SetFocus
       DoCmd.GoToRecord acActiveDataObject, , acLast
    End If
    End Sub
    A+

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 172
    Points : 69
    Points
    69
    Par défaut


    Mais où vont-ils trouver tout cela ?

    Cela marche parfaitement

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Atteindre le dernier enregistrement d'un sous-formulaire
    Par Marcello5255 dans le forum IHM
    Réponses: 3
    Dernier message: 01/10/2022, 00h14
  2. [AC-2003] Afficher dernier enregistrement dans un sous formulaire
    Par pikayo dans le forum IHM
    Réponses: 19
    Dernier message: 01/08/2012, 13h14
  3. Réponses: 2
    Dernier message: 24/03/2010, 17h29
  4. Réponses: 8
    Dernier message: 13/03/2007, 15h04
  5. Réponses: 4
    Dernier message: 16/09/2005, 15h56

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