IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

probleme de copie multiple de fichier


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2013
    Messages : 31
    Points : 34
    Points
    34
    Par défaut probleme de copie multiple de fichier
    bonjour j'ai l'erreur suivante lorsque j’essaie de copier un fichier 'erreur d'execution 52' nom ou numéro de fichier incorrect
    j'utilise le code suivante et l'erreur apparait a l'avant dernier ligne.
    quelqu'un aurai une idée pour regler se probleme?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Dim rst As New ADODB.Recordset
    rst.Open "emplacement", CurrentProject.Connection, adOpenStatic, adLockReadOnly
    rst.MoveFirst
    dossier = Nz(rst!dossier)
    ' SELECTION MULTIPLE DE FICHIERS
     
      Dim fd As Office.FileDialog
      Dim varFichier As Variant
      Dim strListe As String
     
      ' Créer un objet FileDialog
      Set fd = Application.FileDialog(msoFileDialogOpen)
     
      ' Titre de la boîte de dialogue
      fd.Title = "Sélectionnez un ou plusieurs fichiers..."
     
      ' Autoriser la sélection multiple
      fd.AllowMultiSelect = True
     
      ' Définir les types de fichiers autorisés
      fd.Filters.Clear
      fd.Filters.Add "Tous les fichiers", "*.*"
     
      ' Présélectionner le 2ème type de fichier (images)
      fd.FilterIndex = 2
     
      ' Pas de nom par défaut
      fd.InitialFileName = ""
     
      ' Afficher la boîte de dialogue
      If fd.Show() Then
        ' Lister les chemins de tous les fichiers sélectionnés
        strListe = ""
        For Each varFichier In fd.SelectedItems
          strListe = strListe & varFichier & vbCrLf
     
        Next
     
        ' Afficher le résultat
        MsgBox "Vous avez sélectionné les fichiers suivants : " _
          & vbCrLf & strListe, vbInformation
     
    End If
      Set fd = Nothing
      FileCopy strListe, dossier
    end sub
    cordialement

  2. #2
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    dalleau974,

    Remettre les lignes commentées et vérifier que le dernier caractère de l'emplacement contient "\" dans la variable Dossier
    La fonction copie exige un nom de fichier et pas de répertoire (la fonction ExtractFileName permet donc d'extraire le nom du fichier d'un chemin complet)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Function Copy_Fichier()
    'Dim rst As New ADODB.Recordset
    'rst.Open "emplacement", CurrentProject.Connection, adOpenStatic, adLockReadOnly
    'rst.MoveFirst
     dossier = "C:\Temp\"
    ' SELECTION MULTIPLE DE FICHIERS
     
      Dim fd As Office.FileDialog
      Dim varFichier As Variant
      Dim strListe As String
     
      ' Créer un objet FileDialog
      Set fd = Application.FileDialog(msoFileDialogOpen)
     
      ' Titre de la boîte de dialogue
      fd.Title = "Sélectionnez un ou plusieurs fichiers..."
     
      ' Autoriser la sélection multiple
      fd.AllowMultiSelect = True
     
      ' Définir les types de fichiers autorisés
      fd.Filters.Clear
      fd.Filters.Add "Tous les fichiers", "*.*"
     
      ' Présélectionner le 2ème type de fichier (images)
      fd.FilterIndex = 2
     
      ' Pas de nom par défaut
      fd.InitialFileName = ""
     
      ' Afficher la boîte de dialogue
      If fd.Show() Then
        ' Lister les chemins de tous les fichiers sélectionnés
        strListe = ""
        For Each varFichier In fd.SelectedItems
          strListe = strListe & varFichier & vbCrLf
          Destfichier = dossier & ExtractFileName(varFichier)
          FileCopy varFichier, Destfichier
        Next
     
        ' Afficher le résultat
        MsgBox "Vous avez sélectionné les fichiers suivants : " _
          & vbCrLf & strListe, vbInformation
     
    End If
      Set fd = Nothing
      '
    End Function
    Public Function ExtractFileName(ByVal sFullPath As String) As String
        If InStr(sFullPath, "\") = 0 Or Right(sFullPath, 1) = "\" Then
            ExtractFileName = ""
            Exit Function
        End If
        ExtractFileName = Mid(sFullPath, InStrRev(sFullPath, "\") + 1)
    End Function
    JimBoLion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2013
    Messages : 31
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par jimbolion Voir le message
    dalleau974,

    Remettre les lignes commentées et vérifier que le dernier caractère de l'emplacement contient "\" dans la variable Dossier
    La fonction copie exige un nom de fichier et pas de répertoire (la fonction ExtractFileName permet donc d'extraire le nom du fichier d'un chemin complet)
    Merci de ton aide j'ai remodifier ton code pour qu'il fonctionne pour moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Private Sub Commande220_Click()
    'Dim rst As New ADODB.Recordset
    'rst.Open "emplacement", CurrentProject.Connection, adOpenStatic, adLockReadOnly
    'rst.MoveFirst
     dossier = "C:\temp\"
    ' SELECTION MULTIPLE DE FICHIERS
     
      Dim fd As Office.FileDialog
      Dim varFichier As Variant
      Dim strListe As String
     
      ' Créer un objet FileDialog
      Set fd = Application.FileDialog(msoFileDialogOpen)
     
      ' Titre de la boîte de dialogue
      fd.Title = "Sélectionnez un ou plusieurs fichiers..."
     
      ' Autoriser la sélection multiple
      fd.AllowMultiSelect = True
     
      ' Définir les types de fichiers autorisés
      fd.Filters.Clear
      fd.Filters.Add "Tous les fichiers", "*.*"
     
      ' Présélectionner le 2ème type de fichier (images)
      fd.FilterIndex = 2
     
      ' Pas de nom par défaut
      fd.InitialFileName = ""
     
      ' Afficher la boîte de dialogue
      If fd.Show() Then
        ' Lister les chemins de tous les fichiers sélectionnés
        strListe = ""
        For Each varFichier In fd.SelectedItems
          strListe = strListe & varFichier & vbCrLf
          Destfichier = dossier & ExtractFileName(varFichier)
          FileCopy varFichier, Destfichier
        Next
     
        ' Afficher le résultat
        MsgBox "Vous avez sélectionné les fichiers suivants : " _
          & vbCrLf & strListe, vbInformation
     
    End If
      Set fd = Nothing
      '
    End Sub
    Public Function ExtractFileName(ByVal sFullPath As String) As String
        If InStr(sFullPath, "\") = 0 Or Right(sFullPath, 1) = "\" Then
            ExtractFileName = ""
            Exit Function
        End If
        ExtractFileName = Mid(sFullPath, InStrRev(sFullPath, "\") + 1)
    End Function
    mais dossier est un chemin variable donc je l'ai modifier pour qu'il point sur le champs d'une table ou l'adresse du dossier y est inscrit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Private Sub Commande220_Click()
    Dim rst As New ADODB.Recordset
    rst.Open "emplacement", CurrentProject.Connection, adOpenStatic, adLockReadOnly
    rst.MoveFirst
     dossier = Nz(rst!dossier)
    ' SELECTION MULTIPLE DE FICHIERS
     
      Dim fd As Office.FileDialog
      Dim varFichier As Variant
      Dim strListe As String
     
      ' Créer un objet FileDialog
      Set fd = Application.FileDialog(msoFileDialogOpen)
     
      ' Titre de la boîte de dialogue
      fd.Title = "Sélectionnez un ou plusieurs fichiers..."
     
      ' Autoriser la sélection multiple
      fd.AllowMultiSelect = True
     
      ' Définir les types de fichiers autorisés
      fd.Filters.Clear
      fd.Filters.Add "Tous les fichiers", "*.*"
     
      ' Présélectionner le 2ème type de fichier (images)
      fd.FilterIndex = 2
     
      ' Pas de nom par défaut
      fd.InitialFileName = ""
     
      ' Afficher la boîte de dialogue
      If fd.Show() Then
        ' Lister les chemins de tous les fichiers sélectionnés
        strListe = ""
        For Each varFichier In fd.SelectedItems
          strListe = strListe & varFichier & vbCrLf
          Destfichier = dossier & ExtractFileName(varFichier)
          FileCopy varFichier, Destfichier
        Next
     
        ' Afficher le résultat
        MsgBox "Vous avez sélectionné les fichiers suivants : " _
          & vbCrLf & strListe, vbInformation
     
    End If
      Set fd = Nothing
      '
    End Sub
    Public Function ExtractFileName(ByVal sFullPath As String) As String
        If InStr(sFullPath, "\") = 0 Or Right(sFullPath, 1) = "\" Then
            ExtractFileName = ""
            Exit Function
        End If
        ExtractFileName = Mid(sFullPath, InStrRev(sFullPath, "\") + 1)
    End Function
    merci grâce a toi j'ai pu réglé le problème

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. copie multiple de fichier
    Par gaston11 dans le forum Débuter
    Réponses: 2
    Dernier message: 26/12/2012, 17h03
  2. probleme durant copie d'un fichier
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 2
    Dernier message: 30/05/2012, 16h58
  3. Réponses: 8
    Dernier message: 26/09/2011, 14h44
  4. Probleme de copie multiple
    Par blondelle dans le forum C++Builder
    Réponses: 12
    Dernier message: 11/09/2006, 16h50
  5. [FTP] Probleme de copie de fichier en reseaux avec easphp
    Par needles94000 dans le forum Langage
    Réponses: 17
    Dernier message: 29/03/2006, 15h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo