Comment atteindre le clone d'un enregistrement ?

Le
Mission
Bonjour tout le monde,
Dans un sous-formulaire (Access 2000), chaque enregistrement est affublé
d'un bouton "clone".
La requête d'affichage donne (entre autres) Date_Travail croissant, Client
croissant et Num_Travail croissant.
Le code du bouton est le suivant :

[quote]
Private Sub CloneEnr_DblClick(Cancel As Integer)
On Error GoTo Err_CloneEnr_DblClick
Origine = CurrentRecord
Me.AllowAdditions = True
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append
Me.Requery
Exit_CloneEnr_DblClick:
Me.AllowAdditions = False
Exit Sub
Err_CloneEnr_DblClick:
MsgBox Err.Description
Resume Exit_CloneEnr_DblClick
End Sub
[/quote]
Mon problème est que j'aimerai bien revenir directement au clone.
J'ai essayé diverses solutions Me.Recordset mais ça ne convient pas.
Est-ce que quelqu'un aurait la gentillesse de me mettre sur la voir ?
Cordialement.
PG
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thierry (ze Titi)
Le #6392751
Hello PG !

Si l'enregistrement est le dernier de la requête, tu peux ajouter un

Me.Requery
DoCmd.GotoRecord ,,acLast

A tester, jamais utilisé...

En ce jour mémorable du mercredi 19/09/2007, tu as émis l'idée
suivante:
Bonjour tout le monde,
Dans un sous-formulaire (Access 2000), chaque enregistrement est affublé d'un
bouton "clone".
La requête d'affichage donne (entre autres) Date_Travail croissant, Client
croissant et Num_Travail croissant.
Le code du bouton est le suivant :

[quote]
Private Sub CloneEnr_DblClick(Cancel As Integer)
On Error GoTo Err_CloneEnr_DblClick
Origine = CurrentRecord
Me.AllowAdditions = True
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append
Me.Requery
Exit_CloneEnr_DblClick:
Me.AllowAdditions = False
Exit Sub
Err_CloneEnr_DblClick:
MsgBox Err.Description
Resume Exit_CloneEnr_DblClick
End Sub
[/quote]
Mon problème est que j'aimerai bien revenir directement au clone.
J'ai essayé diverses solutions Me.Recordset mais ça ne convient pas.
Est-ce que quelqu'un aurait la gentillesse de me mettre sur la voir ?
Cordialement.
PG


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info

Mission
Le #6392731
Bonjour Thierry

Ca fonctionne tant que je ne reclasse pas mes enregistrements.
Mais je les reclasse ! C'est pour l'expliquer que j'ai donné ma requête.
J'aurai pu préciser que NumTravail est la clé primaire unique de cette
table.

Merci tout de même pour l'attention.
PG

"Thierry (ze Titi)" message de news:
Hello PG !

Si l'enregistrement est le dernier de la requête, tu peux ajouter un

Me.Requery
DoCmd.GotoRecord ,,acLast

A tester, jamais utilisé...

En ce jour mémorable du mercredi 19/09/2007, tu as émis l'idée suivante:
Bonjour tout le monde,
Dans un sous-formulaire (Access 2000), chaque enregistrement est affublé
d'un bouton "clone".
La requête d'affichage donne (entre autres) Date_Travail croissant,
Client croissant et Num_Travail croissant.
Le code du bouton est le suivant :

[quote]
Private Sub CloneEnr_DblClick(Cancel As Integer)
On Error GoTo Err_CloneEnr_DblClick
Origine = CurrentRecord
Me.AllowAdditions = True
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste
Append
Me.Requery
Exit_CloneEnr_DblClick:
Me.AllowAdditions = False
Exit Sub
Err_CloneEnr_DblClick:
MsgBox Err.Description
Resume Exit_CloneEnr_DblClick
End Sub
[/quote]
Mon problème est que j'aimerai bien revenir directement au clone.
J'ai essayé diverses solutions Me.Recordset mais ça ne convient pas.
Est-ce que quelqu'un aurait la gentillesse de me mettre sur la voir ?
Cordialement.
PG


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info





Thierry (ze Titi)
Le #6392681
Dans ce cas, il te faut récupérer la clé primaire générée pour le nouvel enregistrement. Je pense qu'en revoyant un peu ton code de la façon suivante:

Private Sub CloneEnr_DblClick(Cancel As Integer)
On Error GoTo Err_CloneEnr_DblClick
Origine = CurrentRecord
Me.AllowAdditions = True
Dim rs As DAO.Recordset, maClé
Set rs=Me.RecordSetClone
rs.AddNew
rs!champ1=Me.Champ1
rs!champ2=Me.Champ2
'on répète le code pour tous les champs (sauf la clé primaire)
rs.Update
maClé=rs!champCléPrimaire
Me.Requery
Me.RecordSet.FindFirst "laCléPrimaire=" & maClé
Exit_CloneEnr_DblClick:
Me.AllowAdditions = False
Exit Sub
Err_CloneEnr_DblClick:
MsgBox Err.Description
Resume Exit_CloneEnr_DblClick
End Sub

A tester, jamais essayé...

--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info
Mission
Le #6392591
Merci Thierry pour ton aide.

Ta formule ne me satisfaisait guère, car elle entraînait une trop grand
modification du code.
Par contre, en ajoutant ton analyse avec ce que j'ai trouvé chez
http://access.developpez.com, j'ai trouvé ça :
[quote]
...
Me.Requery
Nouveau = DMax("[NumTravail]", "tblTravaux")
Me.Recordset.FindFirst "NumTravail=" & Nouveau
...
[unquote]
Et j'arrive bien sur le bon enregistrement, ce qui était le but recherché.

Encore mille mercis.

"Thierry (ze Titi)" message de news:
Dans ce cas, il te faut récupérer la clé primaire générée pour le nouvel
enregistrement. Je pense qu'en revoyant un peu ton code de la façon
suivante:

Private Sub CloneEnr_DblClick(Cancel As Integer)
On Error GoTo Err_CloneEnr_DblClick
Origine = CurrentRecord
Me.AllowAdditions = True
Dim rs As DAO.Recordset, maClé
Set rs=Me.RecordSetClone
rs.AddNew
rs!champ1=Me.Champ1
rs!champ2=Me.Champ2
'on répète le code pour tous les champs (sauf la clé primaire)
rs.Update
maClé=rs!champCléPrimaire
Me.Requery
Me.RecordSet.FindFirst "laCléPrimaire=" & maClé
Exit_CloneEnr_DblClick:
Me.AllowAdditions = False
Exit Sub
Err_CloneEnr_DblClick:
MsgBox Err.Description
Resume Exit_CloneEnr_DblClick
End Sub

A tester, jamais essayé...

--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info




Publicité
Poster une réponse
Anonyme