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 :

commande replace fonctionne pas sur variable SQL?


Sujet :

VBA Access

  1. #1
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 134
    Points : 59
    Points
    59
    Par défaut commande replace fonctionne pas sur variable SQL?
    bonjour,
    j'ai creer une variable SQL
    et j'aimerai savoir si il etait possible par VBA de rechercher ds ce code
    lui dire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    rechercher ds Mysql ("Tblsemoule.GENOTYPE")
    if recherche isnull then
    'ne rien faire
    else
    remplacer ("Tblsemoule.GENOTYPE") par ("Tblsemoule_GENOTYPE")
    end if


    merci a vous
    J'essaye d'utiliser la commande REPLACE mais elle fonctionne pas voir plus bas dans la discussion

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    As-tu cherché du coté de la fonction Replace ?

    Starec

  3. #3
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    vivi j'y ai pensé mais marche pas voici ce que j'ecrivai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InsertSQL = Replace InsertSQL, "Tblsemoule.GENOTYPE", "Tblsemoule_GENOTYPE", , ,
    insertsql est ma variable contenant le code sql,Tblsemoule.GENOTYPE a remplacer, Tblsemoule_GENOTYPE le code a remplacer!
    et comment lui dire rechercher si il trouve pas ne rien faire...merci

  4. #4
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 783
    Points : 3 036
    Points
    3 036
    Par défaut
    Est-on en VBA Access ? Je ne reconnais pas ta manière d'écrire le code.

    Si ton Replace ne trouve pas la chaîne à remplacer; il ne fera donc rien.
    Remplacer Nestor par Toto revient à ne rien remplacer du tout si Nestor n'est pas repris dans ta chaîne ==> ta préoccupation est donc inutile. Non ? Si pas, j'ai pas tout compris.....

  5. #5
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    oui oui on est bien en VBA pourquoi y'a un souci quelque part?
    je suis en train de construire un code SQL par vba...ce code sql servant de requete de selection, va me servir a creer une requete d'insertion...

    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
     
    'ici je recuperer le code sql de ma requete de selection 
    ' select.....from.....where ......
    InsertSQL = ReqSQL
    Debug.Print "etape 2 : " & InsertSQL
     
    ' la j'élimine la partie droite a partir de from pour garder donc la partie gauche
    'select champs....
    InsertSQL = Trim(Left(InsertSQL, InStr(InsertSQL, "FROM ") - 1))
    Debug.Print "etape 3 : " & InsertSQL
    ' la il suffit d'éliminer la partie gauche le select
    ' ....champs    j'ai donc ici que la partie des champs inclus ds le select  qui va me servir a mettre aprés le Insert into
    InsertSQL = Right(InsertSQL, Len(InsertSQL) - InStr(InsertSQL, "SELECT ") - Len("SELECT ") + 1)
    ' je construit la premiere partie de mon sql d'insertion INSERT INTO tbl (champs)
    Insertsql = "INSERT INTO tbl.comparaison(" & Insert SQL
    ' UN PROBLEME dans les champs dune requete INSERT on ecrit pas . mais _
    'je dois donc remplacer le champs "Tblsemoule.GENOTYPE" par "Tblsemoule_GENOTYPE" dans mon InsertSQL
     
    Debug.Print "etape 4 : " & InsertSQL

    comment faire pour remplacer si il trouve le champs en question? ce code ne marche pas OU est l'erreur????

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InsertSQL = Replace InsertSQL, "Tblsemoule.GENOTYPE", "Tblsemoule_GENOTYPE", , ,
    Il me met erreur compilation ou erreur fin instruction attendu ??

  6. #6
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    Apres 1 soirée a faire marcher ce code voici que j'arrive enfin a faire marcher ma fonction..merci quand pour le coup de main

    une petite info sur la fonction replace au cas ou ca interressé d'autre noob comme moi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    il existe la fonction 'replace' :
     
    Replace(expression, find, replace[, start[, count[, compare]]])
     
    toto=replace(titi,"9110954",ma_variable,1,2)
    et si vous aimez pas la fonction replace ou si vous souhaitez exploiter une fonction recherche o mieux voici un code que j'ai trouvé sur internet (ds un autre forum désolé...) ces lignes ressorti brut mon permis de faire des recherche et de manipuler ma variable ds les tous les sens du terme


    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
       ' Texte = texte où rechercher l'expression à remplacer.
        ' TexteRecherché = expression à remplacer.
        ' NouveauTexte = expression de remplacement.
        ' Départ = numéro de caractère du début de la recherche, commençant à 1.
     
    Public Function Remplacer(ByVal Texte As String, ByVal TexteRecherché As String, _
    ByVal NouveauTexte As String, Optional ByVal Départ As Integer = 1) As String
      Dim strTemp1 As String, strTemp2 As String
      Dim I As Integer
         On Error GoTo RemplacerErr
         strTemp1 = Texte
         I = InStr(Départ, strTemp1, TexteRecherché)
         Do Until I = 0
         strTemp2 = Left(strTemp1, I - 1) & NouveauTexte _
         & Right(Texte, Len(strTemp1) - I - Len(TexteRecherché) + 1)
         strTemp1 = strTemp2
         I = InStr(I + Len(NouveauTexte), strTemp1, TexteRecherché)
         Loop
         Remplacer = strTemp1
         Exit Function
    RemplacerErr:
         ' Gestion d'erreur simplissime, il ne peut pas se passer grand-chose
         ' sauf si Départ est inférieur à 1
         Select Case Err.Number
         Case Else
         Err.Raise Number:=vbObjectError + 1000, _
         Description:="Erreur dans la fonction Remplacer : " & vbCrLf & Err.Description
         End Select
     
         End Function

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/07/2013, 08h39
  2. Réponses: 3
    Dernier message: 05/06/2013, 16h37
  3. Réponses: 4
    Dernier message: 27/07/2012, 10h32
  4. composant tMap : filtre ne fonctionne pas sur variable de type texte
    Par jeanphi45 dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 15/03/2010, 16h01

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