Recherche chaîne de caractère

Résolu
cs_monaco63 Messages postés 76 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 15 juin 2009 - 4 sept. 2007 à 15:49
cs_monaco63 Messages postés 76 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 15 juin 2009 - 12 sept. 2007 à 14:11
Bonjour à tous,

Je souhaiterais savoir comment faire pour rechercher une partie d'une chaîne de caractères, je m'explique :
je dispose de 2 tables ou il y a des enregistrements (nom, prenom, adresse, etc.)
      - ma 1ère table comprend un enregistrement tel que TOTO pour le nom
      - ma 2ème table comprend un enregistrement tel que M. TOTO pour le nom (c'est la même personne)

quand j'exécute le code ci-dessous :
il ne me trouve pas M. TOTO à cause du M. pour les monsieur, (j'ai également Mlle. Mme.)
je ne peux pas changer la 2ème table pour ceux qui vont me dire enlève M. ou Mme. ou encore Mlle.

Set DB1 = DBEngine(0)(0)
    Set rsNewResponsable = DB1.OpenRecordset("SELECT * FROM PVHT_VH")
    Set rsNewResponsable2 = DB1.OpenRecordset("SELECT * FROM PVHT_RESP")
       
    rsNewResponsable.MoveFirst
    rsNewResponsable2.MoveFirst
   
    'Pour la table PVHT_RESP
    Do Until rsNewResponsable2.EOF
        'Si le champ de la table PVHT_RESP correspond
        If Trim(lsAncienResponsable) = Trim(rsNewResponsable2.FindFirst.Fields("RESPONSABLE")) Then
            rsNewResponsable2.EDIT
            rsNewResponsable2.Fields("RESPONS_SITE") = RESPONSABLE.Text
            rsNewResponsable2.Update
            Exit Do
           
        End If
        rsNewResponsable2.MoveNext
    Loop

Merci pour votre aide

17 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
6 sept. 2007 à 11:03
Salut,
Esaie peu etre

Set rsNewResponsable = DB1.OpenRecordset("SELECT
RESPONS_SITE FROM PVHT_VH WHERE RESPONS_SITE = '" &
lsAncienResponsable & "'")

@+: Ju£i?n
Pensez: Réponse acceptée
3
cs_monaco63 Messages postés 76 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 15 juin 2009
12 sept. 2007 à 14:11
C'est bon je viens de trouver la solution à mon petit problème voici la requête SQL correcte :
Set rsNewResponsable2 = DB1.OpenRecordset("SELECT * FROM PVHT_RESP WHERE UCase(RESPONSABLE) LIKE '*" & UCase(lsAncienResponsable) & "*' ")
3
TomIlliev Messages postés 86 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 13 octobre 2016 2
4 sept. 2007 à 16:05
salut
Si tu es en VB6 utilise la function remplace avant la comparaison

dim M as string  
M= Trim(lsAncienResponsable)

m=remplace(m,"M.","")

m=remplace(m,"Mme.","")

m=remplace(m,"Melle.","")

Ensuite

If  m =
Trim(rsNewResponsable2.FindFirst.Fields("RESPONSABLE")) Then...

tu peux aussi utiliser la function InStr ...

if instr(ChaineCible,ChaineAChercher)> 0 then...
0
cs_monaco63 Messages postés 76 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 15 juin 2009
4 sept. 2007 à 16:26
Est ce que par la suite je peux remettre M., Mme. Mlle avec la meme fonction Remplace, car c'est pour un modèle de lettre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 sept. 2007 à 16:32
Salut,

Heu... c'est la fonction replace et non remplace ;)
______________________________________
DarK Sidious
0
TomIlliev Messages postés 86 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 13 octobre 2016 2
4 sept. 2007 à 17:12
Oups autant pour moi
bien sur que c'est la function replace...

Quant à "replacer" les M. Mme et Melle il faut savoir où les replacer.
a+
0
cs_etniqs Messages postés 201 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 10 mai 2016
4 sept. 2007 à 17:30
1 - je vois pas l'interet d'utiliser Trim
2 - tu peux balancer directement
if instr(1,lcase("TOTO"),lcase("la case de M. Toto")) >0 then
qu'il y est du M. ou du Mme. ne change rien
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
5 sept. 2007 à 08:23
Salut,
Et dans la requete SQL de sélection, pourquoi ne pas utiliser LIKE ?????

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_monaco63 Messages postés 76 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 15 juin 2009
5 sept. 2007 à 10:37
Ma requête ne fonctionne pas, il me dit que j'ai une erreur dans la clause FROM.
Voici ma requête avec le LIKE

Set rsNewResponsable2 = DB1.OpenRecordset("SELECT * FROM PVHT_RESP LIKE ' & %lsAncienResponsable &% '")

Si quelqu'un peut m'aider, merci d'avance
0
cs_monaco63 Messages postés 76 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 15 juin 2009
5 sept. 2007 à 10:38
C'est bon, j'avais oublier la condition WHERE avec le champ voulu
0
cs_monaco63 Messages postés 76 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 15 juin 2009
5 sept. 2007 à 10:40
Mais il ne dit que j'ai aucun enregistrement
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
5 sept. 2007 à 13:15
re

le debut ..... LIKE '%" & lsAncienResponsable & "% '")
peu etre
@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_monaco63 Messages postés 76 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 15 juin 2009
5 sept. 2007 à 13:42
C'est pareil aucun enregistrement
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
6 sept. 2007 à 07:49
Salut,
Regarde comment utiliser le LIKE, il y a peu etre qqch que tu fais mal.
Tu peux aussi essayer de poser ta question (ou du moins d'aller faire un tour) sur [www.sqlfr.com www.sqlfr.com

]@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_monaco63 Messages postés 76 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 15 juin 2009
6 sept. 2007 à 10:51
Re bonjour, j'ai posté un autre message sur le lien que tu m'a donné www.sqlfr.com

De plus je suis entrain de modifier mon autre requête est j'ai une erreur de syntaxe :
erreur de syntaxe (opérateur absent) dans l'expression 'RESPONS_SITE = TOTO'

Voici ma nouvelle requêteSet rsNewResponsable <gras>DB1.OpenRecordset("SELECT RESPONS_SITE FROM PVHT_VH WHERE RESPONS_SITE " & lsAncienResponsable & "")</gras>
0
cs_monaco63 Messages postés 76 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 15 juin 2009
6 sept. 2007 à 11:08
Merci pour cette requête cela fonctionne,
Tu n'as d'autres idées pour la deuxième
0
cs_monaco63 Messages postés 76 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 15 juin 2009
10 sept. 2007 à 09:10
Je ne trouve toujours pas de solution pour ma preière requête ça commence à m'énerver, mais bon./
personne n'a d'autres idées.
0
Rejoignez-nous