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 avec " ' " contenu dans des mots [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 121
    Points : 96
    Points
    96
    Par défaut Problème avec " ' " contenu dans des mots
    Bonjour à tous,

    J'utilise Access 2003.

    Voilà, j'ai développé un code permettant de transférer le contenu d'un table liée vers une autre table.

    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
    Function transfert_curatif_vers_curatif_géné()
    Dim db As Database
    Dim sql As String
    Dim Rs20 As DAO.Recordset
    Dim qfd20 As DAO.QueryDef
    Dim année20 As String
    Dim date20 As String
    Dim accu20 As String
    Dim respcu20 As String
    Dim id20 As String
    Dim delaicura20 As String
    Dim visacu20 As String
    Dim ok20 As String
    Dim nok20 As String
    Dim solde20 As String
    Dim type20 As String
     
     
    DoCmd.SetWarnings False ' pour ne pas avoir de message a chaque ajout
     
    'code pour activer requête
    Set qfd20 = CurrentDb.QueryDefs("R_sélectionne_AC_curatif")
     
    'ouvre le recordset basé sur la requête
    Set Rs20 = qfd20.OpenRecordset
     
    'Vérifie s'il y a des enregistrements dans le Recordset pour éviter message d'erreur
    If Rs20.BOF = True And Rs20.EOF = True Then GoTo line31
     
    'stocke dans les variables les données de la table sélectionnée en fonction de la requête
    Rs20.MoveFirst
    While Not Rs20.EOF
        With Rs20
            id20 = Nz(.Fields("ID_RNC").Value, "")
            année20 = Nz(.Fields("année_curatif").Value, "")
            date20 = Nz(.Fields("Date_cura").Value, "")
            'accu20 = Nz(.Fields("ac_curative").Value, "")
            accu20 = Replace(Rs20.Fields("ac_curative").Value, "'", " ")
            respcu20 = Nz(.Fields("Resp_cura").Value, "")
            delaicura20 = Nz(.Fields("Delai_cura").Value, "")
            visacu20 = Nz(.Fields("Visa_cura").Value, "")
            ok20 = .Fields("conforme").Value
            If ok20 = "Vrai" Then ok20 = "1"
            nok20 = .Fields("non_conforme").Value
            If nok20 = "Vrai" Then nok20 = "1"
            solde20 = .Fields("Soldé").Value
            If solde20 = "Vrai" Then solde20 = "1"
            type20 = .Fields("type_ac").Value
     
                'exécute la requête d'ajout dans la table
                sql = "INSERT INTO [curatif_générale](ID_RNC,année_curatif,Date_cura,ac_curative,Resp_cura,Delai_cura,Visa_cura,conforme,non_conforme,Soldé,type_ac) VALUES ('" & id20 & "', '" & année20 & "','" & date20 & "','" & accu20 & "', '" & respcu20 & "', '" & delaicura20 & "','" & visacu20 & "','" & ok20 & "','" & nok20 & "','" & solde20 & "','" & type20 & "' )"
                DoCmd.RunSQL sql
     
        End With
            id20 = ""
            année20 = ""
            date20 = ""
            accu20 = ""
            respcu20 = ""
            delaicura20 = ""
            visacu20 = ""
            ok20 = ""
            nok20 = ""
            solde20 = ""
            type20 = ""
     
            Rs20.MoveNext
    Wend
    DoCmd.SetWarnings True
     
    line31:
    Rs20.Close  'on est propre on ferme ce qui a été ouvert
    Set Rs20 = Nothing
    End Function
    Je rencontre un problème avec un champ qui contient le descriptif d'incident rencontré en production.

    En effet lorsque l'on utilise des mots contenant " ' " j'obtiens un message d'erreur.

    Exemple : " Le bruit n'est plus d'actualité ".

    J'ai trouvé une parade pour éviter le message d'erreur mais cela m'oblige à reprendre certaines lignes car ma phrase du dessus devient " Le bruit n est plus d actualité "

    Y a t'il une solution différente que la mienne ?

    Merci d'avance de vos précieux conseils.

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Essaie comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    accu20 = Replace(Rs20.Fields("ac_curative").Value, "'", "''")
    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 121
    Points : 96
    Points
    96
    Par défaut
    Bonjour Domi2,

    J'avais déjà essayer cette solution sans résultat ( j'obtiens un message d'erreur )

    Erreur de syntaxe (opérateur absent) dans l'expression "Le bruit n' 'est plus d' 'actualité"

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 896
    Points : 4 784
    Points
    4 784
    Par défaut
    Bonjour,
    pour éviter l'erreur tu pourrais :
    soit , à la place de la requete ajout, procéder par recordset sur la table curatif_générale et ajouter un nouvel enregistrement

    soit encadrer ton libellé (qui contient des ' ) par """ au lieu d'un seul " dans la rq Ajout

    "Always look at the bright side of life." Monty Python.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 121
    Points : 96
    Points
    96
    Par défaut
    Bonjour Micniv,

    Dans les 2 solutions que tu me proposes je ne vois très bien comment faire.

    Un petit exemple pour tes 2 solutions serait le bienvenu pour m'éclairer car là je suis sec.

    Je vais voir ce que je peux faire pour la 2ème solution.

  6. #6
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par kiki.gaby Voir le message
    Bonjour Domi2,

    J'avais déjà essayer cette solution sans résultat ( j'obtiens un message d'erreur )
    la solution de Domi2 devrait marcher, j'ai l'impression qu'il y a un espace entre tes '' dans ton message d'erreur, il n'en faut pas. les 2 ' doivent se toucher

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 121
    Points : 96
    Points
    96
    Par défaut
    Bonjour Begon0,

    Autant pour moi je n'ai pas bien prêté attention à l'écriture de la solution de Domi2.

    Merci à vous deux pour la solution apportée.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/11/2014, 10h57
  2. Problème avec les quote
    Par student_php dans le forum Langage
    Réponses: 4
    Dernier message: 13/12/2010, 20h27
  3. [XML] [Encodage] Problème avec un quote !
    Par gui38 dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 11/01/2008, 11h58
  4. Réponses: 15
    Dernier message: 21/02/2007, 17h29

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