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

Access Discussion :

fonction replace et variable de type string


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Par défaut fonction replace et variable de type string
    lol !

    Comment transmettre correctement une variable string (Dim ville) correctement à ma requête SQL ?
    Mon message d'erreur est que les enregristrements ne correspondent pas ) mes options de requêtes .

    La problématique de fond est la suivante :

    En fonctions du nom de la ville de mon document une variable string avec un code correspondant au nom de la ville est chargée .Ensuite dans une table access et dans une colonnes toutes les villes sont mélangées.
    Puis j'essaie de lancer un tri sur la ville qui m'interresse .Voici comment je procède :

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    Private Sub CommandButton1_Click()
     
     '*************************
     
            Selection.Find.ClearFormatting
        With Selection.Find
            .Text = "0510"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = True
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute
        Selection.MoveRight Unit:=wdCharacter, Count:=0 
     
        Dim ville As String
     
        If Selection.Text = "0510" Then  
     
        Selection.TypeText Text:="Saint Laurent"
     
        ville = "SL51"
     
        End If
     
     
     
            Selection.Find.ClearFormatting
        With Selection.Find
            .Text = "0110"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = True
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute
        Selection.MoveRight Unit:=wdCharacter, Count:=0 
     
     
        If Selection.Text = "0110" Then  
        Selection.TypeText Text:="Bapaume"
        ville = "B11"
        End If
     
     
    '*******
     
     
    Dim DB As Database
    Dim RS As Recordset
    Dim qdf As DAO.QueryDef
    Dim rcs As DAO.Recordset
     
    Set DB = OpenDatabase("C:\Documents and Settings\a\Bureau\gesaf.mdb")
    Set RS = DB.OpenRecordset("CTR et CV")
     
     
     
    RS.Index = "NumCTR"
    RS.MoveLast 'pour se mettre sur le dernier enregistrement
    MsgBox RS("NumCTR")
     
     
     
    With Selection  
        .Collapse Direction:=wdCollapseEnd
        .Range.InsertDatabase _
            Style:=64, _
            LinkToSource:=False, Connection:="TABLE CTR et CV", _
            SQLStatement:="SELECT [NumCTR] FROM [CTR et CV] WHERE [CTR et CV]![NumCTR] LIKE '" & Replace(ville, "'", "''") & "' ", _
            DataSource:="C:\Documents and Settings\a\Bureau\gesaf.mdb"
    End With
     
     
        RS.Close
        DB.Close
     
     
    'Désallocation mémoire
    Set DB = Nothing
    Set RS = Nothing
     
    End Sub
    ça bugue ici

    SQLStatement:="SELECT [NumCTR] FROM [CTR et CV] WHERE [CTR et CV]![NumCTR] LIKE '" & Replace(ville, "'", "''") & "' ",

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Probalement que Ville est Null

    essaye Replace(CStr(Ville),"'","''")

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Par défaut
    Non je transmet bien une string je n’aie donc pas besoin de Cstr

    Ce code fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With Selection   'cela lance ma base de donnée alors que ça m'interresse pas Selection.Text
        .Range.InsertDatabase _
            Style:=64, _
            LinkToSource:=False, Connection:="TABLE CTR et CV", _
            SQLStatement:="SELECT * FROM [CTR et CV] WHERE [NumCTR] = 'SL51 2576' ", _
            DataSource:="C:\Documents and Settings\a\Bureau\gesaf.mdb"
    End With

    Celui là ne fonctionne pas .Ce qu’il ne digére pas à mon avis c’est les guillemets de ma string
    Ds ma fenetre espion j’aie ville = "SL51" .Le prog fait une recherche sur "SL51" au lieu de faire une recherche sur SL51

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    With Selection   'cela lance ma base de donnée alors que ça m'interresse pas Selection.Text
        .Range.InsertDatabase _
            Style:=64, _
            LinkToSource:=False, Connection:="TABLE CTR et CV", _
    _      SQLStatement:="SELECT * FROM [CTR et CV] WHERE [NumCTR] LIKE" & " ' " & ville & " ' ", _
            DataSource:="C:\Documents and Settings\a\Bureau\gesaf.mdb"
    End With
    ci-dessous me dit carémment qu’il n’a pas reussi à ouvrir la base de donnée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    With Selection   'cela lance ma base de donnée alors que ça m'interresse pas Selection.Text
        .Range.InsertDatabase _
            Style:=64, _
            LinkToSource:=False, Connection:="TABLE CTR et CV", _
            SQLStatement:="SELECT * FROM [CTR et CV] WHERE [NumCTR] LIKE ville* ", _
            DataSource:="C:\Documents and Settings\a\Bureau\gesaf.mdb"
    End With

  4. #4
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLStatement:="SELECT * FROM [CTR et CV] WHERE [NumCTR] LIKE """ & ville & """"
    ce qui donne la ville encadrée par des guillemets (pour éviter les problèmes avec les noms de villes contenant des apostrophes)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Par défaut
    « Erreur 5922 Word n’a pas pu ouvrir la source de donnée »
    J’aie change de bug cette fois ma variable ville est acceptée (une confusion classique entre la chaine SQL et la variable couplée à un oubli du symbole * )
    Cependant à présent impossible d’ouvrir la base de données .
    Si je regarde mes variables RS et DB j’aie un « opération non autorisée pour ce type d’objet »

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Set DB = OpenDatabase("C:\Documents and Settings\a\Bureau\gesaf.mdb")
    Set RS = DB.OpenRecordset("CTR et CV") ‘CTR et CV est une base de données
     
    With Selection
        '.Collapse Direction:=wdCollapseEnd
        .Range.InsertDatabase _
            Style:=64, _
           LinkToSource:=False, Connection:="TABLE CTR et CV", _
           SQLStatement:="SELECT * FROM [CTR et CV] WHERE [CTR et CV]![NumCTR] LIKE '" & ville & "'* ", _
           DataSource:="C:\Documents and Settings\a\Bureau\gesaf.mdb"
    End With

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour,

    Et ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLStatement:="SELECT * FROM [CTR et CV] WHERE [CTR et CV]![NumCTR] LIKE '" & ville & "*' "
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLStatement:="SELECT * FROM [CTR et CV] WHERE [CTR et CV]![NumCTR] LIKE """ & ville & "*"""
    pgz

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

Discussions similaires

  1. Des " dans une variable de type String
    Par 4lkaline dans le forum Langage
    Réponses: 6
    Dernier message: 06/11/2006, 14h20
  2. convertir une variable de type String en Number
    Par lilbrother974 dans le forum Flash
    Réponses: 13
    Dernier message: 06/09/2006, 08h28
  3. [VB] gestion des couleurs des variables de type string
    Par landry005 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 28/03/2006, 14h36
  4. Ajouter a une variable de type string, un entier
    Par Little-Freud dans le forum SL & STL
    Réponses: 12
    Dernier message: 05/03/2005, 19h33
  5. [VB6] creation de variable de type string dynamiquement
    Par da40 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 12/06/2003, 16h59

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