J'ai donc un fichier d'accès qu'il faut régulièrement copier dans un autre répertoire, en remplaçant la dernière version. J'aimerais utiliser une macro Excel pour y parvenir, et j'aimerais également renommer le fichier au cours du processus.
Par exemple
fileName = "X:\Database\oldName.accdb"
copyDestination = "Y:\dbstore\"
newName = "newName.accdb"
Existe-t-il un moyen simple de faire cela ?
Utilisez les méthodes appropriées dans Scripting.FileSystemObject. Ainsi, votre code sera plus facilement portable vers VBScript et VB.net. Pour commencer, vous devez inclure les éléments suivants :
Dim fso As Object
Set fso = VBA.CreateObject("Scripting.FileSystemObject")
Ensuite, vous pouvez utiliser
Call fso.CopyFile(source, destination[, overwrite] )
où source et destination sont les noms complets (y compris les chemins) du fichier.
Voir https://docs.microsoft.com/en-us/office/vba/Language/Reference/user-interface-help/copyfile-method
Une chose qui m'a causé un énorme mal de tête lors de l'utilisation de ce code (pourrait affecter d'autres personnes et j'aurais aimé que quelqu'un laisse un commentaire comme celui-ci ici pour que je le lise) :
Ma solution sera d'exécuter le code (sur l'événement de la minuterie) à partir d'un autre formulaire caché qui s'ouvre avec la base de données.