Bonjour,
J'ai dans une table plusieurs champs : N° de voie / nom de voie / type de voie / etc, qui constituent une adresse postale.
Avant de les concaténer, je souhaite les abréger afin de réduire le nombre de caractères.
Lorsque le champ contient un seul mot j'y arrive par une requête de mise à jour qui, à partir d'une table d'abréviations, remplace le mot ROUTE par RTE ; AVENUE par AV ; etc.
Par contre quand les adresses sont mal renseignées (déjà concaténées dans un seul champ), je n'arrive pas à faire ces remplacements, ex : comment remplacer 10 CHEMIN DE L EGLISE par 10 CHE DE L EGLISE ; 10 ROUTE DE LA GARE par 10 RTE DE LA GARE ... ? toujours à partir de la table d'abréviation
J'ai trouvé sur un forum le module RemplaceBis, ci-dessous, qui permet de remplacer un mot par un autre dans une chaine de caractères mais je dois alors créer autant de requêtes de mise à jour qu'il y a d'abréviations (une 100aine).
Il y peut-être un moyen de "combiner" le module RemplaceBis avec une requête de mise à jour ? après pas mal d'essais je bloque totalement ... merci de votre aide
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 Public Function RemplaceBis(strTexte As String, strRech As String, strRempl As String) As String ' déclaration des variables Dim tabSplit() As String Dim i As Integer ' éclatage de la chaine tabSplit = Split(strTexte, " ") ' parcours de la chaine et remplacement For i = 0 To UBound(tabSplit()) If tabSplit(i) = strRech Then tabSplit(i) = strRempl End If Next i ' reconstruction de la chaine RemplaceBis = Join(tabSplit(), " ") End Function
Partager