Supprimer un caractere en milieu de chaine

hug0 -  
 Utilisateur anonyme -
Bonjour,

Sous ACCESS je souhaite modifier les mails qui contiennent ".@" par une requête qui remplacerait ".@" par "@".
Le nombre de caractère devant les ".@" étant aléatoire je ne peut pas utiliser left() comme j'ai pu le voir ailleurs.

Merci d'avance pour votre aide

4 réponses

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    Dim AdrMail As String
    
    AdrMail = "toto.@server.com"
    
    AdrMail = Replace (AdrMail, ".@", "@")


    ;o)
    1
    1. hug0
       
      Merci pour ton aide mais avec ce type de requête il faudrait changer la requête pour chaque email, n'y a t-il pas un moyen d'automatiser cette requête ?
      0
    2. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Bonjour,

      Tu as ici la liste des fonctions dans SQL pour différentes bases de données https://sqlpro.developpez.com/cours/sqlaz/fonctions/
      Access est limité en fonctions SQL.

      Une solution, assez lourde, consisterait à faire une fonction en VB pour extraire tous les champs des tables contenant une adresse e-mail, de remplacer ".@" par "@" et de faire un update.

      Il y a certainement quelqu'un de plus caler que moi sur Access et qui a une solution moins lourde.
      0
  2. Utilisateur anonyme
     
    tu utilise une variable temporaire :

    void methode(char * TonTableau)
    {
    char temp;
    int i, j;
    for( i = 0 ; i < strlen(TonTableau) ; i++)
    if( TonTableau[i] == '.' && TonTableau[i] == '@' )
    for( j = i ; j < strlen( TonTableau)-1 ; j++;
    TonTableau[j] = TonTableau[j+1];
    TonTableau[j+1] = '\0';
    }

    ca devrai le faire (je l'ai fait vite fait sans test donc je garantie rien ^^)
    0
  3. Utilisateur anonyme
     
    tu utilise une variable temporaire :
    [code]
    void methode(char * TonTableau)
    {
    char temp;
    int i, j;
    for( i = 0 ; i < strlen(TonTableau) ; i++)
    if( TonTableau[i] == '.' && TonTableau[i] == '@' )
    for( j = i ; j < strlen( TonTableau)-1 ; j++;
    TonTableau[j] = TonTableau[j+1];
    TonTableau[j+1] = '\0';
    }

    [code/]
    ca devrai le faire (je l'ai fait vite fait sans test donc je garantie rien ^^)
    0
  4. hug0
     
    Merci mais je suis sous ACCESS et je ne crois pas que l'on puisse exécuter du code C dessus
    0
    1. Utilisateur anonyme
       
      ha, bah faut que tu traduise alors =) après je connais pas acces donc bon ...
      0
    2. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Il aurait juste fallu lire le message initial ...

      ^^
      0
    3. Utilisateur anonyme
       
      j'avous x) ma faute ><

      Bon bah de rien pour rien alors =F
      0