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 :

problème de guillemets dans une formule shell [À faire]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 30
    Points : 26
    Points
    26
    Par défaut problème de guillemets dans une formule shell
    bonjour,

    je cherche à copier un fichier dans un autre dossier. Aussi pour réaliser cela j'utilise une commande shell :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell ("copy C:\Documents and Settings\Mes documents\test.txt C:\Documents and Settings\Mes documents\classement\")
    Cependant en lançant le programme l'erreur "fichier introuvable" est mentionnée.
    J'ai donc testé ma commande sous "l'invite de commandes". Celle-ci ne fonctionne que si l'on rajoute des guillemets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    copy "C:\Documents and Settings\Mes documents\test.txt" "C:\Documents and Settings\Mes documents\classement\"
    Malheureusement, access n'accepte pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell ("copy "C:\Documents and Settings\Mes documents\test.txt" "C:\Documents and Settings\Mes documents\classement\"")
    Comment puis-je résoudre ce problème ?

    Merci pour votre aide

  2. #2
    Membre régulier

    Inscrit en
    Novembre 2002
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 73
    Points : 86
    Points
    86
    Par défaut
    avec l'utilisation de chr(34) ?????

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 30
    Points : 26
    Points
    26
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell ("copy " & Chr(34) & "C:\Documents and Settings\bdimeglio\Mes documents\test.txt" & Chr(34) & " " & Chr(34) & "C:\Documents and Settings\bdimeglio\Mes documents\classement\" & Chr(34))
    Malheureusement, j'ai toujours la meme erreur

  4. #4
    Membre régulier

    Inscrit en
    Novembre 2002
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 73
    Points : 86
    Points
    86
    Par défaut
    si tu essayes dans un répertoire ou il n'y a pas d'espace ???

    exemple :

    c:\mondossier\monrep\monfic

    :

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 30
    Points : 26
    Points
    26
    Par défaut
    sans espace dans le chemin il est certain que celui ci aurait fonctionné mais je devais prendre en compte toutes les solutions possibles.

    Voici comment j résolu mon problème de copie de fichier :

    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     resultat = copier("c:\test.txt","c:\test2.txt") 'dans n'importe quel endroit de votre projet afin de copier un fichier
     
     
    'Les lignes suivantes dans un module  ( projet/ajouter un module)
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Declarations
    Public Const FO_COPY = &H2
    Public Const FO_DELETE = &H3
    Public Const FO_MOVE = &H1
    Public Const FO_RENAME = &H4
     
    Public Const FOF_CONFIRMMOUSE = &H2
    Public Const FOF_ALLOWUNDO = &H40
    Public Const FOF_FILESONLY = &H80
    Public Const FOF_MULTIDESTFILES = &H1
    Public Const FOF_NOCONFIRMATION = &H10
    Public Const FOF_NOCONFIRMMKDIR = &H200
    Public Const FOF_NO_CONNECTED_ELEMENTS = &H1000
    Public Const FOF_NOCOPYSECURITYATTRIBS = &H800
    Public Const FOF_NOERRORUI = &H400
    Public Const FOF_RENAMEONCOLLISION = &H8
    Public Const FOF_SILENT = &H4
    Public Const FOF_SIMPLEPROGRESS = &H100
    Public Const FOF_WANTMAPPINGHANDLE = &H20
    Public Const FOF_WANTNUKEWARNING = &H2000
    Public Const FOF_NORECURSION = &H1000                '// don't recurse into directories.
     
    Public Type SHFILEOPSTRUCT
        hWnd As Long
        wFunc As Long
        pFrom As String
        pTo As String
        fFlags As Integer
        fAnyOperationsAborted As Long
        hNameMappings As Long
        lpszProgressTitle As String
    End Type
     
    Public Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" _
        (Dest As Any, Sourc As Any, ByVal Length As Long)
     
    Public Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" _
        (lpFileOp As Any) As Long
     
    Public Function copier(FROM As String, copie As String)
    On Error GoTo erreur
    Dim fso, msg
        Set fso = CreateObject("Scripting.FileSystemObject")
        If Not fso.FileExists(FROM) Then 'on verifie si le fichier existe
    copier = "Le fichier n'existe pas"
    Exit Function
    erreur:
    copier = "Une erreur c'est produite"
    Exit Function
    End If
     
     
     
     
    Dim fos As SHFILEOPSTRUCT        ' structure to pass to the function
    Dim retval As Long              ' return value
     
                 With fos
                    .hWnd = 0                        'ou Me.hWnd si on a une Feuille par exemple
                    .wFunc = FO_COPY                'Action == Copie
                    .pFrom = FROM & vbNullChar 'Source path
                    .pTo = copie & vbNullChar    'Dest Path
                    .fFlags = FOF_NOCONFIRMMKDIR Or FOF_WANTMAPPINGHANDLE 'Flags de Copie
                    .fAnyOperationsAborted = 0
                    .hNameMappings = 0
                    .lpszProgressTitle = vbNullChar
                    End With
     
    retval = SHFileOperation(fos)
    copier = "OK"
    End Function

  6. #6
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    copy ... copy ...
    C'est du bon vieux DOS ça !

    Essaie plutôt un chemin en 8.3 !

    sinon, tu as toujours l'instruction FileCopy de VBA.
    ou alors, tu peux te pencher sur les FSO ...

  7. #7
    Membre régulier

    Inscrit en
    Novembre 2002
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 73
    Points : 86
    Points
    86
    Par défaut
    HOU LA LA ... TRES JOLIE FONCTION ....

    POUR INFO :

    étant donné que tu fais appel à la fonction shell, il faut coder les noms de répertoire au format DOS :

    C:\Program Files\monrep\monfic

    DOIT ETRE ECRIT SOUS LA FORME :

    C:\Progra~1\monrep\mon fic


  8. #8
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    <PRIVATE JOKE ENTRE THOGAL ET MOI>

    ben voilà !
    Copieur en plus !

    </PRIVATE JOKE ENTRE THOGAL ET MOI>

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

Discussions similaires

  1. Problème de guillemets dans une balise <img>
    Par Bobette dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/04/2012, 16h16
  2. [Designer V5-V6] problème d'affichage dans une formule
    Par lechtinico dans le forum Débuter
    Réponses: 5
    Dernier message: 23/04/2009, 10h14
  3. Réponses: 4
    Dernier message: 28/04/2008, 17h50
  4. Problème de dimension dans une formule
    Par Vassili68 dans le forum MATLAB
    Réponses: 10
    Dernier message: 07/11/2007, 21h37
  5. problème des guillemets dans une requête
    Par Smix007 dans le forum Requêtes
    Réponses: 3
    Dernier message: 24/04/2007, 17h09

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