Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment atteindre le clone d'un enregistrement ?

4 réponses
Avatar
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

4 réponses

Avatar
Thierry (ze Titi)
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

Avatar
Mission
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)" a écrit dans le
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





Avatar
Thierry (ze Titi)
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
Avatar
Mission
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)" a écrit dans le
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