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 :

Trim ne me supprime pas les espaces


Sujet :

VBA Access

  1. #1
    Membre averti
    Directeur technique
    Inscrit en
    Novembre 2006
    Messages
    584
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 584
    Points : 403
    Points
    403
    Par défaut Trim ne me supprime pas les espaces
    Bonjour à tous,

    Je me retrouve, je ne sais comment avec une kirielle d'espaces en fin d'un champ texte qui contient un chemin de fichier.
    Et ceci me pose probleme dans mes docmd.runsql
    J'utilise donc Trim mais je n'ai pas le résultat attendu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Function fctMvmtInsert(ByVal TypeMvmt As String, ByVal Docnum As Long, ByVal FichierAvant As String, ByVal FichierApres As String)
    Dim fsespace As String
    Debug.Print "fav " & FichierAvant & "I"
    fsespace = Trim(FichierAvant)
    Debug.Print "fse " & fsespace & "O"
    Debug.Print "fap " & FichierApres & "H"
    Dim SQLinsMvt As String
    SQLinsMvt = "INSERT INTO tblMouvement (TypeMvmt, Docnum, MvmtDate, Acteur, FichierAvant, FichierApres) " & _
                    "VALUES ('" & Replace(TypeMvmt, " ", "") & "', " & Docnum & ",  " & Chr(35) & Date & " " & Time() & Chr(35) & ",'" & Application.CurrentUser & "','" & Trim(Replace(FichierAvant, "'", "''")) & "', '" & Trim(Replace(FichierApres, "'", "''")) & "')" & ";"
    Debug.Print SQLinsMvt
        DoCmd.RunSQL SQLinsMvt
    End Function
    et le debug.print
    fav E:\Mes documents\Ged\bookdrive.pdf ---ici tout plein d'espaces---I
    fse E:\Mes documents\Ged\bookdrive.pdf ---- ici c'est tout pareil ----O
    fap E:\RepDestination\bookdrive.pdfH
    INSERT INTO tblMouvement (TypeMvmt, Docnum, MvmtDate, Acteur, FichierAvant, FichierApres) VALUES ('Sauvegarde', 802, #06/10/2007 00:01:35#,'Admin','E:\Mes documents\Ged\bookdrive.pdf ', 'E:\RepDestination\bookdrive.pdf');
    où les lettres I,O et H me servent à visualiser les espaces.
    Quelque chose m'échappe...
    Merci de votre attention

  2. #2
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    bonjour tAKAmAkA,

    en reprenant ce que tu as fais moi j'ai:
    fav E:\Mes documents\Ged\bookdrive.pdf <plein d'espaces> I
    fse E:\Mes documents\Ged\bookdrive.pdfO
    fap E:\RepDestination\bookdrive.pdfHH
    INSERT INTO tblMouvement (TypeMvmt, Docnum, MvmtDate, Acteur, FichierAvant, FichierApres) VALUES ('Sauvegarde', 802, #06/10/2007 08:11:43#,'Admin','E:\Mes documents\Ged\bookdrive.pdf', 'E:\RepDestination\bookdrive.pdfH');
    comme tu peux le constater: pas de pb.
    mais c'est curieux parceque dans ton INSERT INTO (de ton post) tu as bien:
    'E:\Mes documents\Ged\bookdrive.pdf '
    avec toutefois un espace en fin.

    je ne peux conclure que deux choses: tu te trompe dans ton ex, ou simplement: ceux ne sont pas des espaces...
    verifie chaque avec Asc().

  3. #3
    Membre averti
    Directeur technique
    Inscrit en
    Novembre 2006
    Messages
    584
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 584
    Points : 403
    Points
    403
    Par défaut
    Bonjour vodiem,

    L'espace à la fin du nom de fichier dans le SELECT est en fait le résidu de toute la suite d'espaces (220) réduite à un seul par le copier/coller entre la fenêtre debug et le post.
    Le résultat dans le SELECT est donc bien une chaine de 441 caractères:
    183 caractères - 220 espaces - 38 caractères.
    Le résultat de Asc()
    Len fespace = 254
    Debug.Print "Asc SQLins = " & Asc(Mid(SQLinsMvt, 190, 1))

    Asc SQLins = 0
    Len SQLinsMvt = 441
    Après investigation ce sont bien des Null:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fsespace = Replace(FichierAvant, Chr(0), "")
    Debug.Print "fse " & fsespace & "O"
    donne
    fav E:\Mes documents\Ged\bookdrive.pdf < espaces >I
    fse E:\Mes documents\Ged\bookdrive.pdfO

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

Discussions similaires

  1. SUBSTITUTE ne supprime pas les espaces
    Par cycloop dans le forum Excel
    Réponses: 2
    Dernier message: 04/05/2011, 02h18
  2. TIBTransaction.Rollback ne supprime pas les objets créés dans le script
    Par sangkookay dans le forum Connexion aux bases de données
    Réponses: 2
    Dernier message: 02/10/2007, 14h26
  3. RMAN / DELETE OBSOLETE ne supprime pas les fichiers
    Par segphault dans le forum Recovery Manager
    Réponses: 3
    Dernier message: 12/04/2006, 09h48
  4. Supprimer TOUS les espaces d'une chaine
    Par tavekapaclike1er dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/12/2005, 15h19
  5. Le '%' en SQL ne remplace pas les espaces...
    Par njac dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/09/2004, 17h10

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