Les mémos

Fermer Tables

Fermer Requêtes

Fermer Formulaires

Fermer Etats

Fermer Modules

Fermer Base

Fermer Automation

Fermer Administration

Fermer Registre

Fermer String

Fermer Email CDO

Fermer Outlook

Fermer Net

Fermer Dates - Heures

Fermer Fichiers

Fermer Références

Fermer Vrac

Recherche



Je débute...

Fermer La normalisation

Fermer VBA

Lettre d'information
Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
Captcha
Recopier le code :
Attention
Aucun support
par émail !

Utilisez le forum pour les questions/réponses concernant MsAccess et les codes que vous trouverez sur ce site.
Au sujet de l'auteur
L'auteur qui fréquente (fréquentait) le forum microsoft.public.fr.access a eu le plaisir d'être nommé MVP Office-Access de janvier 2003 à décembre 2011.

Qui sont les MVP ?

Visites

   visiteurs

   visiteurs en ligne

Divers ;-)
Nous contacter

La Charte du Forum - La Charte du Forum

Forum - Forum
Problèmes liés aux codes du site - Problèmes liés aux codes du site


clos par 3Stone le 11/05/2015 : 18:03  Sujet n° 745  Redistribuer du texte

le 26/04/2015 : 15:29
par possible924

Anonyme

visiteur

Bonjour à tous,
Sous Access, j'ai un contrôle dans lequel je saisi un texte qui se termine par un mot entre parenthèse
Par exemple "Martin (Saint)"
après modification du contrôle, je souhaiterais stocker dans un autre champ
la valeur entre parenthèse en premier, sans les parenthèses, suivi de la première partie du texte
Par exemple "Saint Martin"
Pouvez vous m'aider ,
Merci par avance pour vos réponses
Pierre
 sujet clos  Haut
Réponse n° 1
--------
le 26/04/2015 : 19:58
par 3Stone

3Stone

Administrateur

Bonjour,
 
Citation :

je saisi un texte qui se termine par un mot entre parenthèse
Par exemple "Martin (Saint)"

 
C'est une erreur de débutant d

Une base de données doit répondre à quelques règles strictes. ici, elle ne respecte même pas la première forme normale.

Mais bon... pour faire ce que tu souhaites, tu peux utiliser la fonction ci-dessous.

Pour cela, tu colle le code dans un module, puis tu crées une requête de mise à jour.
Tu sélectionne le nouveau champ et comme valeur de mise à jour tu écris :

= fnCleanField([Nom ancien champ])

 
Code :
Function fnCleanField(ov) As String
Dim pos1 As Integer, pos2 As Integer
Dim nv1 As String, nv2 As String
If Len(Nz(ov, "")) = 0 Then
fnCleanField = ""
Else
pos1 = InStr(ov, "(")
pos2 = InStr(ov, ")")
If pos1 > 0 Then
nv1 = Trim(Mid(ov, pos1 + 1, pos2 - pos1 - 1))
nv2 = Trim(Left(ov, pos1 - 1))
fnCleanField = nv1 & " " & nv2
End If
End If
End Function
 

Cordialement,
Pierre (3Stone)
  clos par 3Stone le 11/05/2015 : 18:03  Haut
Réponse n° 2
--------
le 27/04/2015 : 08:23
par possible924

Anonyme

visiteur
Merci pour cette prompte et parfaite réponse.
Il est vrai qu'une base de donnée doit être atomique, mais j'hérite d'une situation où une table comporte une liste de paroisses dont la plupart des noms commencent par Saint ou Saintes et pour pouvoir trier sur le nom, Saint ou Saintes ont été placées en fin de champ.
Passez une bonne journée et merci pour votre aide
Pierre
  clos par 3Stone le 11/05/2015 : 18:03  Haut
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut