Recherche chaîne de caractère [Résolu]

Signaler
Messages postés
76
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
15 juin 2009
-
Messages postés
76
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
15 juin 2009
-
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

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
52
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
Messages postés
76
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
15 juin 2009

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) & "*' ")
Messages postés
86
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
13 octobre 2016
2
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...
Messages postés
76
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
15 juin 2009

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
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
111
Salut,

Heu... c'est la fonction replace et non remplace ;)
______________________________________
DarK Sidious
Messages postés
86
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
13 octobre 2016
2
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+
Messages postés
201
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
10 mai 2016

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
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
52
Salut,
Et dans la requete SQL de sélection, pourquoi ne pas utiliser LIKE ?????

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
76
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
15 juin 2009

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
Messages postés
76
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
15 juin 2009

C'est bon, j'avais oublier la condition WHERE avec le champ voulu
Messages postés
76
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
15 juin 2009

Mais il ne dit que j'ai aucun enregistrement
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
52
re

le debut ..... LIKE '%" & lsAncienResponsable & "% '")
peu etre
@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
76
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
15 juin 2009

C'est pareil aucun enregistrement
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
52
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
Messages postés
76
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
15 juin 2009

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>
Messages postés
76
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
15 juin 2009

Merci pour cette requête cela fonctionne,
Tu n'as d'autres idées pour la deuxième
Messages postés
76
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
15 juin 2009

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.