1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| Private Sub btnDupliquer_Click()
'Message prealable pour confirmation de la copie
On Error GoTo Err_btnDupliquer_Click
If MsgBox("Etes-vous sûr(e) de vouloir Dupliquer partiellement l'enregistrement ? Ne pas oublier de faire les rajouts d'informations et ajouter une image!", vbYesNo + vbQuestion, "Création du Doublon") = vbYes Then
'Déclaration des variables
'Dim listeNomChamp() As Variant: listeNomChamp = Array(Me.cboCatégorie.ControlSource, Me.Désignation.ControlSource, Me.Description.ControlSource, Me.Datation.ControlSource, _
'Me.cboPSSCatégorie.ControlSource, Me.cboSSSCatégorie.ControlSource, Me.cboForme.ControlSource, Me.cboCouleur.ControlSource, Me.cboMotif.ControlSource, Me.cboMatière.ControlSource, _
'Me.cboTit_Perif.ControlSource, Me.cboTit_Centrale.ControlSource, Me.A_Ref.ControlSource, Me.Reference.ControlSource, Me.DatationFallou.ControlSource, _
'Me.A_Attestations.ControlSource, Me.Commentaires.ControlSource, Me.Bibliographie.ControlSource, Me.Attestations.ControlSource, Me.Dimensions.ControlSource, Me.ArgDat.ControlSource)
Dim listeNomChamp() As Variant: listeNomChamp = Array(Me.cboCatégorie.ControlSource, Me.Désignation.ControlSource, Me.Description.ControlSource, Me.Datation.ControlSource, _
Me.cboPSSCatégorie.ControlSource, Me.cboSSSCatégorie.ControlSource, Me.cboForme.ControlSource, Me.cboCouleur.ControlSource, Me.cboMotif.ControlSource, Me.cboMatière.ControlSource, _
Me.cboTit_Perif.ControlSource, Me.cboTit_Centrale.ControlSource, Me.A_Ref.ControlSource, Me.Reference.ControlSource, Me.DatationFallou.ControlSource, _
Me.A_Attestations.ControlSource, Me.Commentaires.ControlSource, Me.Bibliographie.ControlSource, Me.Attestations.ControlSource, Me.Dimensions.ControlSource, Me.ArgDat.ControlSource)
'Champs a copier.
Dim rSource As dao.Recordset: Set rSource = Me.RecordsetClone
Call rSource.FindFirst("[ID_Bouton] =" & Me.ID_Bouton) 'Declenchement de la copie sur l'enregistrement "source".
'Déclaration de variables
Dim rCible As dao.Recordset: Set rCible = Me.Recordset
Dim f As dao.Field
'Ouverture du nouveau formulaire
rCible.AddNew
'Declaration de la variable nomChamp qui correspond a un des champs liste precedemment
Dim nomChamp As Variant: For Each nomChamp In listeNomChamp 'Boucle pour recuperer et coller les valeurs de champ
Set f = rSource.Fields(nomChamp)
rCible(f.Name) = f
Set f = Nothing 'RAZ de la valeur pour prochain champ
Next nomChamp 'c'est ecrit :-)
'Collage des valeurs
rCible.Update
'Vidange des donnees
Set rSource = Nothing
Set rCible = Nothing
End If
'On affiche les boutons d'ajout d'images et Alphabet Grec et enleve les boutons Dupliquer et Modifier
Me.btnAjoutImage.Visible = True
Me.btnAjoutImage2.Visible = True
Me.btnAlphabetGrec.Visible = True
'Me.btnDupliquer.Visible = False
Me.btnModifier.Visible = False
'On vide les infos des images pour les faire disparaitre au raffraichissement
Me.imgImage.Picture = ""
Me.imgImage2.Picture = ""
Me.Refresh 'Actualise les données et force l'enregistrement
Me.AllowEdits = True 'Autorise les modifications
MsgBox "Le formulaire est dupliqué et prêt à être complété. N'oubliez pas de faire les rajouts d'informations et ajouter une image!"
Exit_btnDupliquer_Click:
Exit Sub
Err_btnDupliquer_Click:
MsgBox "Erreur de duplication"
Resume Exit_btnDupliquer_Click
End Sub |
Partager