OVH Cloud OVH Cloud

SEPARER DES CHAMPS

4 réponses
Avatar
mechiche kayssan
Bonjour,

J'ai une base de donnée avec un champs adresse :
73 rue de la couronne 93300 ST DENIS

Comment séparer les champs et créer un champs
adresse (73 rue de la couronne)
CP (93300 St denis)
ville (st denis)

Merci par avance je suis novice sur acess
Aissa
Bonne soirée à tous

4 réponses

Avatar
3stone
Salut,

"mechiche kayssan"
| J'ai une base de donnée avec un champs adresse :
| 73 rue de la couronne 93300 ST DENIS
|
| Comment séparer les champs et créer un champs
| adresse (73 rue de la couronne)
| CP (93300 St denis)
| ville (st denis)


Tu as déjà recus une réponse par Gafish !
Si cela ne convient pas, reste dans le fil et patiente un peu...


Bon, ce que tu avais recu, permettait d'extraire la date!
Sur l'idée de cette fonction, je te propose ceci.
Deux fonctions que tu colle dans un module standard (onglet module)
et que tu sauve sous mod_SepareAdresse par exemple !


Dans une requête (éventuellement "de mise à jour") tu l'appelle ainsi:

fnSepare([ChampAdresseComplète];"A")

et tu obtiens la partie avant le code postal.
Avec "C" à la place du "A" tu obtiens le code postal et
avec "V" à la place du "A" tu obtiens la ville.

Tout ceci à condition que le code postal fasse bien 5 caractères!!



Function fnSepare(Tout, Quoi) As String
'// Syntaxe dans une requête
'// fnSepare([ChampComplet];"x")
'//
'// "x" prendra la valeur de :
'// "A" pour l'adresse
'// "C" pour le code postal
'// "V" pour la ville

Select Case Quoi
Case "A"
fnSepare = Trim(Left(Tout, StartCP(Tout)))
Case "C"
fnSepare = Mid(Tout, StartCP(Tout) + 1, 5)
Case "V"
fnSepare = Trim(Mid(Tout, StartCP(Tout) + 6))
Case Else
fnSepare = ""
End Select
End Function


Function StartCP(LeTexte) As Integer
Dim cpt As Integer
cpt = 1
Do While Not (cpt + 5) > Len(LeTexte)
If IsNumeric(Mid(LeTexte, cpt, 5)) Then
StartCP = cpt
Exit Do
End If
cpt = cpt + 1
Loop
End Function



--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Synopsis
Regarde du côté des "Expressions Régulières"

C'est un "langage" génial et puissant de recherche de chaine de caractère.
Je pense qu'il est implémenté dans Access.

Les administrateurs système s'en servent régulièrement
pour trouver une simple information dans des milliers fichiers logs.


Dans les expressions régulières ont recherches des pattern (ou motifs)
Par exemple, tous les mots qui comment pas 'ab' et se termine par 's'

On définit le pattern = "ab*s"


Dans ton cas :
[ADRESSE]+[CODE POSTAL]+[VILLE]

Il est plus facile de rechercher d'abord le [code postal] car il est composé
de 5 chifres consécutifs.
Ici le pattern est = ddddd "5 digits consécutifs"

Je pense qu'il faut faire la recherche par la fin. Il est possible que tu
trouves (même si très très rares) plusieurs
chaines de caractères composé de 5 chiffres.
Dans certaines viles, le numéro de l'adresse est un numéro kilométrique.

Connaissant la position du [code postal]
Il est aisé de trouver [ADRESSE] et la [VILLE]
[Adresse] = Chaine de caractère avant [code postal]
[Ville] = Chaine de caractère après [code postal]

Tu peux "t'amuser" a retrouver le numéro de la rue, le nom de la rue en
lancant une nouvelle recherche
dans la chaine de caractère [adresse] ;-)))

Un petit nettoyage avec "suppression Espace"....




"mechiche kayssan" a écrit dans le message de
news:437cf890$0$16089$
Bonjour,

J'ai une base de donnée avec un champs adresse :
73 rue de la couronne 93300 ST DENIS

Comment séparer les champs et créer un champs
adresse (73 rue de la couronne)
CP (93300 St denis)
ville (st denis)

Merci par avance je suis novice sur acess
Aissa
Bonne soirée à tous




Avatar
aissa.m
merci j'ai utilisé la premiere fois le groupe sur google. Chez moi je
n'ai pas retrouvé mon email. Je vais patienter pour avoir la suite
alors. Et merci l'ami pour la fonction. Cordialement
Avatar
3stone
Salut,

| merci j'ai utilisé la premiere fois le groupe sur google.


Il n'y a pas de mal...
et puis... maintenant tu sais ;-)


|
| Chez moi je n'ai pas retrouvé mon email.
|

Va faire un tour ici, il y a ce qu'il faut pour utiliser les forums
de facon conviviale : http://www.mpfa.info/



| Je vais patienter pour avoir la suite alors.

? maintenant tu as tout ce qu'il te faut, non ?


| Et merci l'ami pour la fonction. Cordialement


Avec plaisir.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/