Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2011, 16h49   #1
Invité de passage
 
Karine M
Inscription : janvier 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Karine M

Informations forums :
Inscription : janvier 2011
Messages : 3
Points : 0
Points : 0
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.
kmaurais79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 19h00   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

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

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Bonjour Karine,

Citation:
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 ?
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 21h42   #3
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

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

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Citation:
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 ?
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 22h01   #4
Invité de passage
 
Karine M
Inscription : janvier 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Karine M

Informations forums :
Inscription : janvier 2011
Messages : 3
Points : 0
Points : 0
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.
kmaurais79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 03h50   #5
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

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

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
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 :
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 :
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 :
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.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 06h00   #6
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 607
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 607
Points : 30 955
Points : 30 955
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
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
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 08h05   #7
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

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

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Bonjour Philippe,

Citation:
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.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 21h28   #8
Invité de passage
 
Karine M
Inscription : janvier 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Karine M

Informations forums :
Inscription : janvier 2011
Messages : 3
Points : 0
Points : 0
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 :
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 :
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 :
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.
kmaurais79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h16.


 
 
 
 
Partenaires

Hébergement Web