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

Créer nouvel enregistrement en copiant des données d'un autre enregistrement

6 réponses
Avatar
Isabelle ex Isa :-)
Bonsoir

Bon, je vais essayer d'=EAtre claire :
J'ai une base ( toujours la m=EAme depuis un moment) o=F9 je g=E8re des baux=

donc avec nom adresse etc. ainsi que date de d=E9but date de fin
en fin de bail, il faut un renouv=E8lement de bail donc cr=E9er nouvel
enregistrement avec m=EAme nom, m=EAme adresse m=EAme etc, mais date de
d=E9but et date de fin diff=E9rentes

J'aimerai cr=E9er un formulaire qui afficherait les donn=E9es de l'ancien
bail =E0 renouveler + un bouton "cr=E9er un renouv=E8lement de bail"
qui permettrait de compl=E9ter les zones ad=E9quates et que l'utilisateur
n'est plus qu'=E0 compl=E9ter date de d=E9but, date de fin et nouveau
montant loyer le cas =E9ch=E9ant
Partager l'=E9cran en deux d'un c=F4t=E9 ancien bail de l'autre nouveau bail=

=E0 compl=E9ter
C'est possible =E7=E0 ?

C'est dur =E0 faire ?

Merci d'avance pour vos conseils et peut-=EAtre une autre fa=E7on de faire

Isabelle ex Isa :-)

6 réponses

Avatar
Phil
Isabelle ex Isa :-) a couché sur son écran :
Bonsoir

Bon, je vais essayer d'être claire :
J'ai une base ( toujours la même depuis un moment) où je gère des baux
donc avec nom adresse etc. ainsi que date de début date de fin
en fin de bail, il faut un renouvèlement de bail donc créer nouvel
enregistrement avec même nom, même adresse même etc, mais date de
début et date de fin différentes

J'aimerai créer un formulaire qui afficherait les données de l'ancien
bail à renouveler + un bouton "créer un renouvèlement de bail"
qui permettrait de compléter les zones adéquates et que l'utilisateur
n'est plus qu'à compléter date de début, date de fin et nouveau
montant loyer le cas échéant
Partager l'écran en deux d'un côté ancien bail de l'autre nouveau bail
à compléter
C'est possible çà ?

C'est dur à faire ?

Merci d'avance pour vos conseils et peut-être une autre façon de faire

Isabelle ex Isa :-)


Bonsoir Isa,

Dans ton cas j'essaierai un formulaire affichant :
les données du bail en cours
des champs à compléter (indépendant de ta base) avec les données du
nouvel enregistrement
un bouton associé à une macro ajoutant un nouvel enregistrement avec
les données prises dans les champs adhoc du formaulaire (ex la date
début du nouveau bail est celle de fin de l'ancien, les refs sont
identiques etc ...)

Je ne maitrise pas trop bien ces techniques pour te proposer un exemple
rapidement. D'autres contributeurs pourront sans doute t'expliquer celà
mieux que moi.

Phil

Avatar
Fabien
Bonsoir

Bon, je vais essayer d'être claire :
J'ai une base ( toujours la même depuis un moment) où je gère des baux
donc avec nom adresse etc. ainsi que date de début date de fin
en fin de bail, il faut un renouvèlement de bail donc créer nouvel
enregistrement avec même nom, même adresse même etc, mais date de
début et date de fin différentes

J'aimerai créer un formulaire qui afficherait les données de l'ancien
bail à renouveler + un bouton "créer un renouvèlement de bail"
qui permettrait de compléter les zones adéquates et que l'utilisateur
n'est plus qu'à compléter date de début, date de fin et nouveau
montant loyer le cas échéant
Partager l'écran en deux d'un côté ancien bail de l'autre nouveau bail
à compléter
C'est possible çà ?

C'est dur à faire ?

Merci d'avance pour vos conseils et peut-être une autre façon de faire

Isabelle ex Isa :-)

Salut Isa

Voici une partie de la réponse
A adapter dans ton cas ;-)
Private Sub Copie_Click()
On Error GoTo Err_Copie_Click
Dim Str_Sql As String
Dim Titre_sav As String
'Sql pour inserer le nouvel enregistrement
Str_Sql = "INSERT INTO Tournois ( Titre, [Ident Resp], Adresse,
[Code postal], Ville, Tél, [Tél portable], [E-Mail], [Tarif 1], [Tarif
2], [Tarif 3], Sup, S, D, DM, [Commentaire Courrier], [Type Tournoi],
[Ville Club Organisateur], [Tournoi du Club], NC, D_, C, B, A, E, P, Be,
M, Ca, J, Se, V ) "
Str_Sql = Str_Sql & "Values ('" & Me.Titre & " (Copie)', '" &
Me.[Ident Resp] & "', '" & Me.Adresse & "', '" & Me.[Code postal] & "',
'" & Me.Ville & "', '" & Me.Tél & "', '" & Me.[Tél portable] & "', '" &
Me.[E-Mail] & "', " & Nz(Me.[Tarif 1], 0) & ", " & Nz(Me.[Tarif 2], 0) &
", " & Nz(Me.[Tarif 3], 0) & ", " & Nz(Me.Sup, 0) & ", " & Me.S & ", " &
Me.D & ", " & Me.DM & ", '" & Me.[Commentaire Courrier] & "', '" &
Me.[Type Tournoi] & "', '" & Me.[Ville Club Organisateur] & "', " &
Me.[Tournoi du Club] & ", " & Me.NC & ", " & Me.D_ & ", " & Me.C & ", "
& Me.B & ", " & Me.A & ", " & Me.E & ", " & Me.P & ", " & Me.Be & ", " &
Me.M & ", " & Me.Ca & ", " & Me.J & ", " & Me.Se & ", " & Me.V & "); "

DoCmd.SetWarnings False
DoCmd.RunSQL Str_Sql
DoCmd.SetWarnings True
Titre_sav = Me.Titre 'Sauvegarde du titre du tournoi
Me.Requery 'Réactualisation des tables
Me.Titre.SetFocus 'On se place sur le controle
DoCmd.FindRecord Titre_sav & " (Copie)", , , acSearchAll, ,
acCurrent, True 'Et on retrouve le dernier créé
Exit_Copie_Click:
Cache_menu 'On cache le menu
Me.Titre.SetFocus 'On se positionne sur le titre
Exit Sub

Err_Copie_Click:
MsgBox Err.Description
Resume Exit_Copie_Click

End Sub

Pour l'ercan en 'double' je n'ai pas ;-)
@+

Avatar
Isabelle ex Isa :-)

....


Bonjour Fabien

Boudiou ! ché compliqué !

Bon je vais essayer et je te tiens au courant

Isabelle ex Isa :-)
Avatar
Isabelle ex Isa :-)
Re bonjour

Bon j'ai essayé quelque chose mais....

J'ai crée une requête qui permet d'afficher les enregistrements pour
lequels un renouvellement (donc nouvel enregistrement) doit être fait
Puis j'ai crée une requête ajout et paramétrée pour choisir exacteme nt
l'enregistrement désiré pour lequel je veux recopier les données de
certains champs
Jusque là c'est bon => j'ai un nouvel enregistrement avec les champs
désirés, complétés des données de l'ancien enregistrement

il faudra donc que je crée dans un formulaire un bouton de commande
permettant d'exécuter la requête ajout ( çà je sais faire, si si)

mais comment faire pour afficher dans ce même formulaire après le clic
sur le bouton ci-dessus, l'enregistrement qui vient d'être crée dans
la table X avec tous les champs et notamment ceux qui sont vides et
qu'il faut compléter (date de début, date de fin, nouveau montant)

Merci d'avance

Isabelle ex Isa :-)
Avatar
Fabien
Re bonjour

Bon j'ai essayé quelque chose mais....

J'ai crée une requête qui permet d'afficher les enregistrements pour
lequels un renouvellement (donc nouvel enregistrement) doit être fait
Puis j'ai crée une requête ajout et paramétrée pour choisir exactement
l'enregistrement désiré pour lequel je veux recopier les données de
certains champs
Jusque là c'est bon => j'ai un nouvel enregistrement avec les champs
désirés, complétés des données de l'ancien enregistrement

il faudra donc que je crée dans un formulaire un bouton de commande
permettant d'exécuter la requête ajout ( çà je sais faire, si si)

mais comment faire pour afficher dans ce même formulaire après le clic
sur le bouton ci-dessus, l'enregistrement qui vient d'être crée dans
la table X avec tous les champs et notamment ceux qui sont vides et
qu'il faut compléter (date de début, date de fin, nouveau montant)

Merci d'avance

Isabelle ex Isa :-)


Cette partie :

"
Titre_sav = Me.Titre 'Sauvegarde du titre du tournoi
Me.Requery 'Réactualisation des tables
Me.Titre.SetFocus 'On se place sur le controle
DoCmd.FindRecord Titre_sav & " (Copie)", , , acSearchAll, ,
acCurrent, True 'Et on retrouve le dernier créé
"
Sert a te repositionner sur l'enregistrement créé.
Dans mon cas l'enreg a un titre égale a celui d'origine auquel on ajoute
" (Copie)".
J'effectue donc une recherche avec ce critère grâce a la fonction
Docmd.findRecord.
Dans ton cas ce serait l'enregistrement dont la zone date est vide par ex.
Tu met le focus dessus, tu déclenches la recherche
Voil@

Avatar
Isabelle ex Isa :-)
Merci Fabien

Je n'ai pas réussi à faire ce que tu m'as indiqué mais j'ai trouvé u ne
solution et j'aimerai si tu veux bien , me dire si je peux améliorer
et surtout si cela fonctionnera toujours

J'ai crée un formulaire avec dans l'en-tête de formulaire, un bouton
de commande avec le code suivant
( fait avec l'assistant + ajout de code par moi-même)

Private Sub Commande119_Click()
On Error GoTo Err_Commande119_Click

Dim stDocName As String

stDocName = "rq_pc_renouvellement"
DoCmd.OpenQuery stDocName, acNormal, acEdit

Dim rs As Object

Set rs = Me.RecordsetClone
Section(acDetail).Visible = True
Me.Bookmark = rs.Bookmark
DoCmd.Requery ""

Exit_Commande119_Click:
Exit Sub

Err_Commande119_Click:
MsgBox Err.Description
Resume Exit_Commande119_Click

End Sub

et j'ai mis invisible pour la section Détail
et j'ai mis la procédure suivante sur ouverture du formulaire :
Private Sub Form_Open(Cancel As Integer)
Me.OrderByOn = True
End Sub

avec au niveau Tri par
LOCATIONS.Numéro DESC

Ce qui, à l'ouverture du formulaire ne laisse apparaître qu'un bouton
où il faut cliquer dessus, une boîte de dialogue apparaît pour
indiquer les références du bail à renouveler
A l'arrière ma requête ajout créer un nouvel enregistrement en
complétant les zones qui ne bougent pas (nom, adresse etc)
et ce nouvel enregistrement s'affiche (étant le dernier =>tri sur clé
primaire numéro auto)
Ya pu qu'à compléter les zones vierges

Isabelle ex Isa :-)