Carte du site
 Remerciements
 Netiquette
 Bugs
 Tables
 Requêtes
 Formulaires
 États (rapports)
 Modules
 APIs
 Chaînes
 Date/Time
 Général
 Ressources
 Téléchargeables

 Termes d'usage

Strings: Remplacer un caractère par un autre dans une chaîne

Author(s)
Dev Ashish

Remplacer un caractère par un autre dans une chaîne.

(Q) Comment puis-je remplacer un caractère par un autre, dans un chaîne?

(A) La fonction VBA6 Replace( ) peut être utilisée avec Access 2002 (voir le fichier d'aide). À l'intérieur d'une requête d'Access 2000, où Replace ne fonctionne pas, ou à l'intérieur de code VBA pour les versions précédentes, appeler la fonction  fstrTran . Ainsi, pour remplacer le point dans  "Dev.Ashish" par un espace

?fstrTran("Dev.Ashish","."," ")

'************ Code Start **********
Function fstrTran(ByVal sInString As String, _
                           sFindString As String, _
                           sReplaceString As String) As String
  Dim iSpot As Integer, iCtr As Integer
  Dim iCount As Integer
  
  iCount = Len(sInString)
  For iCtr = 1 To iCount
    iSpot = InStr(1, sInString, sFindString)
    If iSpot > 0 Then
      sInString = Left(sInString, iSpot - 1) & _
                        sReplaceString & _
                        Mid(sInString, iSpot + Len(sFindString))
    Else
      Exit For
    End If
  Next
  fstrTran = sInString
  
End Function
'************ Code End **********

De Alden Streeter:

    La fonction fStrTran plante dans deux case, à savoir:

1. sFindString est une chaîne vide. e.g. (dans la fenêtre d'exécution immédiate):
    ?fstrTran("Dev.Ashish","","*")
    **********Dev.Ashish

2. sFindString et sReplaceString contiennent un caractère répété:
    ?fstrTran("Dev.Ashish",".", "*.*")
    Dev**********.**********Ashish

    ?fstrTran("Dev....Ashish","..", ".")
    Dev.Ashish

    Si un des cas précédents est possible, le développeur peut utiliser cette fonction de remplacement. Cette fonction peut également être plus rapide si la chaîne cherchée est longue et si la substitution aura lieu en plusieurs places.

 ''************ Code Start **********
'This code was originally written by Alden Streeter.
'It is not to be altered or distributed,
'except as part of an application.
'You are free to use it in any application,
'provided the copyright notice is left unchanged.

'Ce code fut originalement écrit par Alden Streeter.
'Il ne peut être altéré ni distribué,
'si ce n'est à l'intérieur d'une application.
'Vous êtes libre de l'utiliser dans votre application,
'en autant que cette note soit laissée inchangée
'
'Code Courtesy of
'Alden Streeter
'
Function FindAndReplace(ByVal strInString As String, _
        strFindString As String, _
        strReplaceString As String) As String
Dim intPtr As Integer
    If Len(strFindString) > 0 Then  'catch if try to find empty string
        Do
            intPtr = InStr(strInString, strFindString)
            If intPtr > 0 Then
                FindAndReplace = FindAndReplace & left(strInString, intPtr - 1) & _
                                        strReplaceString
                    strInString = Mid(strInString, intPtr + Len(strFindString))
            End If
        Loop While intPtr > 0
    End If
    FindAndReplace = FindAndReplace & strInString
End Function
'************ Code End **********

 

© 1998-2001, Dev Ashish, All rights reserved. Optimized for Microsoft Internet Explorer