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

Access Discussion :

Retour sur enregistrement en cours après modification


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Retour sur enregistrement en cours après modification
    Bonjour,
    Je me pose une question toute simple. J'ai consulté les FAQ, mais je ne trouve pas la réponse.
    J'aimerais savoir comment il est possible de retourner par défaut à l'enregistrement en cours en mode formulaire après avoir fait des modifications en mode création.
    J'ai fait quelques essais, notamment j'ai créé une macro (dont l'action est «exécuter commande» et l'argument est «atteindre précédent») que j'ai mis dans la section Événement de mon formulaire sur chargement.
    Merci,
    Karine M.

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour Karine,

    J'aimerais savoir comment il est possible de retourner par défaut à l'enregistrement en cours en mode formulaire après avoir fait des modifications en mode création.

    J'ai peine à imaginer ce que tu fais.

    Tu es occupée à encoder, tu apportes une modification à ton formulaire (quel genre) et ensuite, tu te remets à encoder ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour Monsieur,
    Je vais tenter de m'exprimer plus clairement.
    En fait, je voulais dire que lorsque j'apporte des modifications à mon formulaire (peu importe le type de modification), j'aimerais bien faire en sorte que, quand je retourne en mode saisie de données, je puisse retomber tout de suite sur l'enregistrement sur lequel j'étais avant de passer en mode création et ce, afin que je puise continuer de saisir des données (sans retomber par défaut sur l'enregistrement 1 de ma table).
    Très cordialement,
    Karine M.
    A mon avis tu parles d'utiliser ton formulaire en alternant
    - le mode feuille de données
    et
    - le mode formulaire.

    Est-ce correct ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    A mon avis tu parles d'utiliser ton formulaire en alternant
    - le mode feuille de données
    et
    - le mode formulaire.

    Est-ce correct ?

    On y est presque !
    En fait, je parle d'alterner entre le mode formulaire et le mode création, sans retourner par défaut à l'enregistrement 1 de mon formulaire (ou en d'autres termes, à mon premier formulaire) quand je reviens en mode formulaire.

    Par exemple :
    Je saisie des données dans l'enregistrement no 35. Je me rends compte que mon formulaire n'est pas bien adapté à mon travail. Je vais donc en mode création afin de modifier mon formulaire (ex. : modifier ou ajouter un champs, modifier la disposition des champs dans le formulaire, ...). Enfin, je retourne en mode formulaire pour continuer d'entrer des données dans l'enregistrement 35, mais je constate qu'on m'a dirigé automatiquement au premier enregistrement de mon formulaire (au tout début).

    Merci !

    Karine M.

  5. #5
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,
    Voici un exemple généralisé pour ouvrir un formulaire quelconque à l’endroit où il a été fermé la fois précédente.

    Il faut une table « DerniersConsultés » avec NomDuFormulaire (texte) et DernierConsulté (Numérique long)
    Le formulaire doit avoir sa propriété « Bouton Fermer » à Non
    Pour sortir, l’utilisateur doit cliquer un bouton. Voici le code associé au click du bouton "Fermer"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Fermer_Click()
    Call MémoriserDernierConsulté(Me.Name)
    DoCmd.Close acForm, Me.Name
    End Sub
    L’événement Sur ouverture du formulaire exécutera le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form_Open(Cancel As Integer)
     'si déjà dans la table --> ouvrir au dernier, si non ne rien faire
    If DCount("*", "DerniersConsultés", "NomDuFormulaire = """ _
                                         & Me.Name & """") Then
    DoCmd.GoToRecord acDataForm, Me.Name, acGoTo, _
            DLookup("DernierConsulté", "DerniersConsultés", "NomDuFormulaire= """ & Me.Name & """")
    End If
    End Sub
    La Sub "MémoriserDernierConsulté" appelée à la fermeture est logée dans un module. Voici le code :

    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
    Public Sub MémoriserDernierConsulté(Formulaire)
    Dim sql
    DoCmd.SetWarnings False 'supprimer temporairement les messages
    'Ce formulaire est-il déjà dans la table ? si oui mettre à jour
    If DCount("*", "DerniersConsultés", "NomDuFormulaire = """ _
                                         & Formulaire & """") Then
          DoCmd.RunSQL ("UPDATE DerniersConsultés " _
                   & "SET DernierConsulté = """ & Forms(Formulaire).CurrentRecord & """" _
                   & "WHERE NomDuFormulaire =""" & Formulaire & """;")
    Else ' si non il faut ajouter un item dans la table
        DoCmd.RunSQL ("INSERT INTO DerniersConsultés ( NomDuFormulaire, DernierConsulté ) " _
              & "SELECT """ & Formulaire & """ AS Expr1, " _
              & Forms(Formulaire).CurrentRecord & " AS Expr2;")
    End If
    DoCmd.SetWarnings True
    End Sub

    Il te suffit d'adapter ceci à ton cas.

    Au plaisir.
    Un exemple Access2000 dans la pièce jointe.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par kmaurais79 Voir le message
    Par exemple :
    Je saisie des données dans l'enregistrement no 35. Je me rends compte que mon formulaire n'est pas bien adapté à mon travail. Je vais donc en mode création afin de modifier mon formulaire (ex. : modifier ou ajouter un champs, modifier la disposition des champs dans le formulaire, ...). Enfin, je retourne en mode formulaire pour continuer d'entrer des données dans l'enregistrement 35, mais je constate qu'on m'a dirigé automatiquement au premier enregistrement de mon formulaire (au tout début).
    Pourquoi veux-tu procéder de cette manière ? C'est contre nature pour l'utilisation d'une base Access

    Est-ce uniquement lors de la conception de ton application ou en fonctionnement normal ?

    Philippe

  7. #7
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour Philippe,

    Est-ce uniquement lors de la conception de ton application
    C'est en tout cas comme cela que j'ai compris la demande.

    Exemple :
    - tu mets au point la largeur utile des contrôles d'un formulaire qui traite de nombreux enregistrements ;
    - en mode formulaire, tu fais défiler les enregistrements pour vérifier la présentation ;
    - tu repères un enregistrement qui pose problème (ex. : un contrôle trop étroit) ;
    - tu passes en mode construction pour corriger ;
    - tu reviens en mode formulaire pour vérifier ;
    - il faut se repositionner manuellement sur l'enregistrement, vérifier et continuer l'exploration... Pour éviter ce travail fastidieux, la demande a du sens.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    Bonjour,
    Voici un exemple généralisé pour ouvrir un formulaire quelconque à l’endroit où il a été fermé la fois précédente.

    Il faut une table « DerniersConsultés » avec NomDuFormulaire (texte) et DernierConsulté (Numérique long)
    Le formulaire doit avoir sa propriété « Bouton Fermer » à Non
    Pour sortir, l’utilisateur doit cliquer un bouton. Voici le code associé au click du bouton "Fermer"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Fermer_Click()
    Call MémoriserDernierConsulté(Me.Name)
    DoCmd.Close acForm, Me.Name
    End Sub
    L’événement Sur ouverture du formulaire exécutera le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form_Open(Cancel As Integer)
     'si déjà dans la table --> ouvrir au dernier, si non ne rien faire
    If DCount("*", "DerniersConsultés", "NomDuFormulaire = """ _
                                         & Me.Name & """") Then
    DoCmd.GoToRecord acDataForm, Me.Name, acGoTo, _
            DLookup("DernierConsulté", "DerniersConsultés", "NomDuFormulaire= """ & Me.Name & """")
    End If
    End Sub
    La Sub "MémoriserDernierConsulté" appelée à la fermeture est logée dans un module. Voici le code :

    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
    Public Sub MémoriserDernierConsulté(Formulaire)
    Dim sql
    DoCmd.SetWarnings False 'supprimer temporairement les messages
    'Ce formulaire est-il déjà dans la table ? si oui mettre à jour
    If DCount("*", "DerniersConsultés", "NomDuFormulaire = """ _
                                         & Formulaire & """") Then
          DoCmd.RunSQL ("UPDATE DerniersConsultés " _
                   & "SET DernierConsulté = """ & Forms(Formulaire).CurrentRecord & """" _
                   & "WHERE NomDuFormulaire =""" & Formulaire & """;")
    Else ' si non il faut ajouter un item dans la table
        DoCmd.RunSQL ("INSERT INTO DerniersConsultés ( NomDuFormulaire, DernierConsulté ) " _
              & "SELECT """ & Formulaire & """ AS Expr1, " _
              & Forms(Formulaire).CurrentRecord & " AS Expr2;")
    End If
    DoCmd.SetWarnings True
    End Sub

    Il te suffit d'adapter ceci à ton cas.

    Au plaisir.
    Un exemple Access2000 dans la pièce jointe.
    Merci beaucoup !!
    Bonne journée !
    Karine M.

Discussions similaires

  1. Empecher Lecture d'Enregistrement en cours de Modification
    Par toony dans le forum Administration
    Réponses: 4
    Dernier message: 09/12/2009, 11h18
  2. etat sur enregistrement en cours
    Par thomyvp dans le forum IHM
    Réponses: 5
    Dernier message: 26/02/2008, 17h30
  3. Enregistrer fichier Excel après modifications
    Par joquetino dans le forum IHM
    Réponses: 0
    Dernier message: 21/01/2008, 12h22
  4. ImageJ/IPDemo/enregistrer l'image aprés modification
    Par popsi01 dans le forum Interfaces Graphiques en Java
    Réponses: 0
    Dernier message: 05/12/2007, 13h16
  5. données sur enregistrement en cours
    Par Ludwik dans le forum Access
    Réponses: 10
    Dernier message: 21/01/2007, 13h51

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