sancho12345
Messages postés131Date d'inscriptionjeudi 21 mai 2009StatutMembreDernière intervention18 mars 2012
-
27 juin 2009 à 14:25
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
27 juin 2009 à 15:17
Bonjour à tous.
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Une petite question qui j’espère sera pour vous simple ( Aucun doute)
Voici mon code qui fonctionne bien avec ma base access.
************************************************
Private Sub txt_nom_produit_Change() ' requête qui permet d'afficher en fonction de la première lettre les produits commençant par cette lettre
sql_tout_les_noms = "select * from tempsetnoms WHERE reference_pdt LIKE '" & txt_nom_produit & "%' order by reference_pdt "
Call recherchetempsetnoms(sql_tout_les_noms)
End Sub
***********************************************
Voilà ma question: Comment puis-je faire en modifiant ma requête pour que lorsque je rencontre un – ( du 6) tout ce qui est au delà ne soit pas prit en compte par la recherche mais continu à écrire dans txt_nom_produit.
Exemple : je veux écrire dans mon txt_nom_produit hors dans ma base je n’ai que <italique>toutou.bien- il faudrait à partir de <gras>– que la recherche ne fonctionne plus.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 27 juin 2009 à 14:43
salut,
bon, plusieurs choses.....
tu indiques que tu veux tous les noms qui commencent par la lettre saisie
dans ce cas il ne faut pas chercher juste '%N', justement parce que N peut contenir plusieurs lettres
voir LEFT$ dans ce cas
cependant ta 2 question montre que tu peux chercher plusieurs lettres
simple problème d'énoncé peut-être...
bref il faut donc d'abord chercher s'il y a un tiret (6)
si oui, on supprimera ce reste, le % fera son travail
sinon on prendra la première lettre, ou le texte complet (comme tu veux)
on peut en faire une fonction, çà sera plus pratique
Private Function
getSqlLike(
ByVal
sText
As String
,
Optional
bFirst
As Boolean
=
False
)
As String
Dim iPos As Integer
' cherche le -
et nettoie si trouvé
iPos = InStr(1, sText, "-")
If iPos Then sText = Left$(sText, iPos)
' première ou toutes les lettres
If bFirst Then sText = Left$(sText, 1)
' renvoie avec %
getSqlLike = sText & "%"
End Function
sql_tout_les_noms = "SELECT * FROM tempsetnoms WHERE
reference_pdt LIKE '" &
getSqlLike(
txt_nom_produit.text, false) & "' ORDER BY
reference_pdt;"
passe
false
à
true
si tu ne veux que la première lettre
++
<hr size="2" width="100%" />
Motifs de suppression de topic :
*sms, trop de fautes de français
*titre sans rapport (urgent, aidé mwa, ...)
*demande de code complet (copiez et expliquez votre code posant problème)
NB : attention aux rubriques du forum !! DOTNET VB.NET (2005, 2008), VB VB6, office = dérivés/VBA