FlexPro
HistoryBase
Ingénierie
Formation
Téléchargements
Support FlexPro
Connaissance
Communauté
À propos de nous
Références
Emplois
Contact général
Liste des revendeurs
Support FlexPro
FR
DE
EN
Porte-plaquette
Produits et solutions
Support et téléchargements
Entreprise
Magazine
Contact
Langue
MyWeisang

Paramètres du compte.

Topic

Sequential Numbering

Page d'accueil ' Communauté ' Automation et VBA ' Numérotation séquentielle

Voir les messages de 3 - 1 à 3 (sur un total de 3)
  • Auteur
    Messages
  • #35165
    Fiona Vidal
    Participant

    I am trying to write a piece of VBA code to copy and paste a specific folder, “Data1”, from multiple files into one file. The data will subsequently be concatenated. I would like to name the folders that are pasted into the main FPD file sequentially, i.e. 01,02,03… etc. Do you know how I would do this? The number of files would be arbitrary.

    Many thanks for your help

    #35167
    Fiona Vidal
    Participant

    I am trying to write a piece of VBA code to copy and paste a specific folder, “Data1”, from multiple files into one file. The data will subsequently be concatenated. I would like to name the folders that are pasted into the main FPD file sequentially, i.e. 01,02,03… etc. Do you know how I would do this? The number of files would be arbitrary.

    Many thanks for your help

    #35166
    Bernhard Kantz
    Participant

    Using the Open method of the Databases collection of the Application object, one can load a FlexPro project database. The Folder object to be copied can be obtained via the RootFolder method of the opened Database object. Using its CopyTo method with the RootFolder of the destination Database performs the actual copy operation. With the Rename method the newly created folder can be given the desired name.

    If you count the databases using an integer variable nCnt and FlexPro project database filenames as a string sFpd the code in your loop might look like the following:

    [code]
    Dim nCnt As Integer
    Dim sDstName As String
    Dim oSrcDb As Database
    Dim oSrcFolder As Folder
    Dim sFpd

    sDstName = “Data” & Right$(Str$(nCnt + 100), 2)
    Set oSrcDb = Application.Databases.Open(sFpd, fpOpenModeReadOnly)
    Set oSrcFolder = oSrcDb.RootFolder(“Data”, fpObjectTypeFolder)
    oSrcFolder.CopyTo(ThisDatabase.RootFolder, fpNameClashHandlingOverwrite).Rename sDstName
    oSrcDb.Close fpDoNotSaveChanges
    [/code]

    But be aware that opening a project database is a time consuming operation, so get a cup of coffee when executing the script.

Voir les messages de 3 - 1 à 3 (sur un total de 3)
  • Vous devez être connecté pour répondre à ce sujet.