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 :

Pb avec caractères spéciaux dans fichier [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 70

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2004
    Messages : 301
    Points : 130
    Points
    130
    Par défaut Pb avec caractères spéciaux dans fichier
    Bonjour
    J'ai cette routine pour afficher des informations biographiques d'acteurs quand la souris passe sur leur photo affichée dans un form access

    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
    Private Sub ExifData(pFile As String)
    Dim orst As DAO.Recordset
    Dim oDb As DAO.Database
    Set oDb = CurrentDb
        Dim Nom As String
        ' Ouvre le fichier image
        clex.OpenFile pFile
        ' Enlève "C:\photoacteur\" au nom de fichier
                 Nom = Mid(pFile, 16)
        ' Enlève ".jpg" du nom de fichier pour faire correspondre le nom de fichier avec celui de l'acteur présent dans la table Acteurs
                 EDescription = Left(Nom, InStr(Nom, ".") - 1)
                 Set orst = oDb.OpenRecordset("select code,mort,naissance from acteurs where code='" & Me.EDescription & "'", dbOpenDynaset)
                 Naissance.Value = orst.Fields("Naissance").Value & " "
                 Mort.Value = "-  " & orst.Fields("Mort").Value
                 'Ferme le fichier
        clex.CloseFile
    orst.Close
    oDb.Close
    Set orst = Nothing
    Set oDb = Nothing
    End Sub
    Tout fonctionne si l'acteur s'appelle par exemple Jean Gabin
    Mais si le nom est Jean d'Ys ça ne marche plus
    J'ai essayé de retirer le carctère ' de ces noms et ça remarche
    Comment puis-je formuler ma requête pour pouvoir laisser ce carctère dans mes noms ?

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set orst = oDb.OpenRecordset("select code,mort,naissance from acteurs where code='" & Me.EDescription & "'", dbOpenDynaset)
    est en cause. Ecris comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set orst = oDb.OpenRecordset("select code,mort,naissance from acteurs where code=""" & Me.EDescription & """", dbOpenDynaset

    Tu auras alors des problèmes si le nom de l'acteur contient un double-quote. C'est plus rare !

    Edit. Quoique : Jean-Alexis Gabin Moncorgé dit "Jean GABIN"...

    Idem pour ton champ EDescription et tous les cas où le texte est susceptible de contenir l'apostrophe.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    On peut employer aussi "chr(34)" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Set orst = oDb.OpenRecordset("select code,mort,naissance from acteurs where code=" & chr(34) & Me.EDescription & chr(34), dbOpenDynaset
    Edit :
    NB : s'il faut des quotes - doubles quotes, ou chr(34) c'est que Me.EDescription est sans doute une chaîne.

    Dans ce cas, peut-être que l'utilisation de l'opérateur "like " (au lieu de égal (=)) est plus appropriée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Set orst = oDb.OpenRecordset("select code,mort,naissance from acteurs where code like " & chr(34) & Me.EDescription & chr(34), dbOpenDynaset

    Pierre

  4. #4
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 70

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2004
    Messages : 301
    Points : 130
    Points
    130
    Par défaut
    Merci de vos réponses rapides
    Au final j'ai opté pour la deuxième méthode de Pierre c'est à dire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set orst = oDb.OpenRecordset("select code,mort,naissance from acteurs where code like " & chr(34) & Me.EDescription & chr(34), dbOpenDynaset)

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

Discussions similaires

  1. Problème avec caractères spéciaux dans STRING
    Par sibama dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/04/2012, 10h14
  2. Caractères spéciaux dans fichier XML
    Par Kembali dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 02/02/2011, 10h35
  3. Réponses: 3
    Dernier message: 30/11/2010, 17h23
  4. Lien dynamique avec caractères spéciaux dans un mailto
    Par sd dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/07/2008, 11h41
  5. [DOM] Erreur parser fichier xml avec caractère spéciaux
    Par turcotm dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 19/06/2006, 09h01

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