Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Couper un champ en deux [ Access / Requêtes ] (MasterCent)

mercredi 12 mars 2008 à 12:13:58 | Couper un champ en deux

MasterCent

Bonjour à tous :

// Ceci n'est pas un dépanage, mais une préparation à une formation en Access !!! //
// Je n'ai pas besoin d'aide, mais plutôt d'idées à proposer //

Petit cas pratique : Je dois corriger une table dans laquel un champ contient le NOM et le PRENOM, appelé _NP . 
Sachant que c'est une très mauvaise idée de n'avoir qu'un champ (atomisation de l'info),
je décide de créer deux champs, l'un pour les _NOM, l'autre pour les _PRENOM.

Quelles requêtes utiliser pour automatiser la transition ( ou en tout cas, pour une partie du travail ) ?
Attention : Il y a des noms et prénoms composés tel que : Bach Karl Philippe Emmanuel ou Poivre d'Arvor Patrick.

Bon brainstorming.

 

dimanche 30 mars 2008 à 11:23:51 | Re : Couper un champ en deux

deutsch

Réponse acceptée !
Slt

Mon vieux c'est pas une requete SQL qu'il te faut mais un script Vb ou autre pour pouvoir decompose N&Pre
l'astuce c'est que tu dois commencé
par la fin du champ jusqu'a trouvé un blanc ensuite inséré le résultat dans la table c'est la meuilleurs solution 

Bon courage
 

lundi 31 mars 2008 à 15:07:18 | Re : Couper un champ en deux

MasterCent

Réponse acceptée !
Slt,
Merci à tous ceux qui se sont interressés de près ou de loin à la question.

La réponse est d'abord "culturelle" / y a t-il une prédominance dans la structure nom - prénom,  
par exemple, en Espagne, il y aura en majorité deux noms de familles, etc

Sur base de cette étude, et dans le cas (facile) ou l'habitude serait un nom et un prénom, voici quelques instructions SQL "génériques" pour couper le champ :

--Nettoyage des espaces superflus
update MATABLE set NP = trim(NP) ;

-- Longueur du champ, position du premier blanc, position du suivant ou 0, sous le nom Q_SECTIONS
SELECT len( NP ) as  LONGUEUR  , inStr( 1 , NP , " " )  as PREMIERBLANC , inStr( PREMIERBLANC+1 , NP , " " ) AS SUIVANTBLANC , ID from MATABLE

-- Liaisons de Q_SECTIONS avec MATABLE, pour calculer les valeurs, sous le nom Q_NP
Select MATABLE.ID ,  NP , Left(NP,PREMIERBLANC-1) as N , Right(NP,LONGUEUR-PREMIERBLANC) from MATABLE join Q_SECTIONS on MATABLE.ID = Q_SECTIONS.ID where MATABLE.N is null and SUIVANTBLANC = 0

-- Mise à jour de MATABLE sur base de Q_NP
UPDATE MATABLE left join Q_NP on  MATABLE.ID = Q_NP.ID
SET MATABLE.NOM = N , MATABLE.PRENOM = P


A l'issu de cette opération, il devrait rester quelques enregistrements à traiter.
De nouveau, il faudra chercher si il existe une majorité dans les cas non traités, les particules ( de, van, ... ) afin de rétablir une traitement.
En final, il ne restera plus que quelques cas dont le nombre ne justifiera plus une automaisation, mais bien un traitement au cas par cas.

Pour info, cette solution s'inspire de la loi de Pareto, qui met en lumière que 80% des cas demanderont 20% de l'énergie...
(cfr
http://fr.wikipedia.org/wiki/Loi_de_Pareto  80% )

Ce n'est pas LA solution, mais bien un exemple de solution.
Le passage par un script est aussi une solution tentante, (merci deutsch), mais pas plus facile ! (j'ai aussi testé )

...


mardi 1 avril 2008 à 09:49:40 | Re : Couper un champ en deux

deutsch

Cher MasterCent

    la requete que tu viens de nous faire voir est du VB avec du SQL
ce qu'il nous demande c'est du SQL



Cette discussion est classé dans : champ, couper, prenom, cas


Répondre à ce message

Sujets en rapport avec ce message

remplir automatiquement un champ de formulaire access [ par D3m3T05 ] salut a tous, j'ai un petit probleme:je dispose d'un formulaire dans lequel je dois renseigner un nom choisi dans une liste deroulante.j'aimerait une Rechercher un champ d'une table "en tant que chaîne" dans le champ d'une autre table [ par Pecas ] Bonjour à tous/toutes, je suis nouveau dans le forum aussi bien que dans Access-SQL. Voici ma question :J'ai une table [Vieux prenoms] avec le champ P comparer deux champs [ par pascb423 ] Bonjour,est-il possible de comparer deux champ de base de donnée de telle manière que dans une requète mysql, on puisse prendre tous les enregistremen Procedure stockée [ par drcmomo ] Bonjour tout le monde,Je voulais savoir si on peut passer une liste de paramétre ou un DataTable dans une procédure stockée?Je m'explique, je dois par Classement selon le champ 'prix', mais en tenant compte du champ 'devise' [ par goldenboy68 ] Bonjour,Alors voilà, j'ai un classement de produits à faire selon le prix de ceux-ci. Le problème c'est qu'ils ne sont pas tous entrés dans la même de [curseur] insérer 3 premiers meilleurs salaires [ par sikove ] Salut, voila ça fait un moment que je cherche comment faire cette requete : " inserer dans une table temporaire les 3 meilleurs salaires d'une table d Requête de recherche [ par evay16 ] Bonjour,Voila, pour l'un de mes examens d'informatique, nous avons du concevoir sous Access, la base de données d'une vidéothèque.J'ai organisé une Ta Sélection les N premiers mots d'un champ texte [ par keskispas ] Bonjour tout le monde !Je cherche quelque chose de super simple : Retourner les N premiers mots d'un champ de texte.Dans ce cas, le séparateur serait Stocker une requête dans un champ [ par DMK04 ] Bonjour,Je voudrais savoir si il est risqué de stocker une requête SQL dans un champ d'une table ? Si oui, quels sont les risques ?Merci d'avance pour


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,218 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.