Goupe d'option saisie texte

cs_Nana35 Messages postés 18 Date d'inscription mercredi 8 octobre 2008 Statut Membre Dernière intervention 2 février 2009 - 20 oct. 2008 à 17:22
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 - 21 oct. 2008 à 19:11
Bonjour,
Désolée je sèche vraiment. j'ai un soucis avec mon groupe d'option permettant de rechercher un usager en saisissant le nom exacte ou le début ou le contenant.
Seule la saisie exacte fonctionne et je ne comprend pas pourquoi.
Merci de jeter un coup d'oeil sur mon programme pour m'aider à résoudre mon problème.
______________
Function ConditionSaisieTexte(Condition As String, ValeurOption As String, NomChamp As String, ValeurChamp As Variant)
Dim ConditionTemp As String
Select Case ValeurOption
 Case 1
 ConditionTemp = NomChamp & " Like " & Chr(39) & ValeurChamp & Chr(39)
 Case 2
 ConditionTemp = NomChamp & " Like " & Chr(39) & ValeurChamp & Chr(42) & Chr(39)
 Case 3
 ConditionTemp = NomChamp & " Like " & Chr(39) & Chr(42) & ValeurChamp & Chr(42) & Chr(39)
End Select
 If Len(Condition) <> 0 Then
   ConditionSaisieTexte = Condition & "AND" & ConditionTemp
   Else
   ConditionSaisieTexte = "WHERE" & ConditionTemp
   End If
 End Function
______________
Private Sub Recherche_Click()



    Dim strSql As String
    Dim X As Variant
    Dim MaCondition As String




   

             If fPasNull(Me.txtsearchUsager) Then
                MaCondition = ConditionSaisieTexte(MaCondition, CadreOption_saisie, "Unom", txtsearchUsager)
            End If
    'Définition du jeu d'enregistrements strSql
    strSql = "SELECT Uusa, Uciv, Unom, Uprenom "
    strSql = strSql & "FROM USAGER "
    strSql = strSql & "WHERE (((Unom)=Formulaires!SF_Detenir!txtsearchUsager))"
    strSql = strSql & "ORDER BY Unom ;"
    Me.LST_Dispo_Usager.RowSource = strSql
End Sub
_______________

4 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
20 oct. 2008 à 17:54
Bonjour,

1) je ne crois pas que tu nous montres là un cide VB.Net !!!!
2) je comprends encore moins ce que tu compte faire de ceci :

Private Sub Recherche_Click()    Dim strSql As String
    Dim X As Variant
    Dim MaCondition As String

   
             If fPasNull(Me.txtsearchUsager) Then
                MaCondition = ConditionSaisieTexte(MaCondition, CadreOption_saisie, "Unom", txtsearchUsager)
            End If
    'Définition du jeu d'enregistrements strSql
    strSql = "SELECT Uusa, Uciv, Unom, Uprenom "
    strSql = strSql & "FROM USAGER "
    strSql = strSql & "WHERE (((Unom)=Formulaires!SF_Detenir!txtsearchUsager))"
    strSql = strSql & "ORDER BY Unom ;"
    Me.LST_Dispo_Usager.RowSource = strSql
End Sub

- où Macondition est une chaine vide
- où tu dis que Macondition serait  le résultat retourné par une fonction à laquelle tu passes des paramètres non définis !
- où tu n'utlises de toutes manières pas le résultat (Macondition) qui "serait retourné" (je vois mal comment) par la fonction :::

C'est totalement incompréhensible, ainsi ...
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
20 oct. 2008 à 22:16
ValeurOption est déclaré comme une string et tu le compares à des Integer ds ton Select Case !!!
Et pourquoi mettre des chr(39) et des chr(42) dans la construction de tes like ??? Utilises directement les caractères correspondants !! Non ?
0
cs_Nana35 Messages postés 18 Date d'inscription mercredi 8 octobre 2008 Statut Membre Dernière intervention 2 février 2009
21 oct. 2008 à 08:19
Coucou,


Il est très très bien mon programme.
Il suffisait de remplacer la clause WHERE de l'instruction StrSql ("strSql = strSql & "WHERE (((Unom)=Formulaires!SF_Detenir!txtsearchUsager))")
. En effet le texte partiellement saisie ne pouvait pas être égal à Unom.
Pour que ça fonctionne sur n'importe quelle saisie il fallait remplacer cette ligne par "strSql = strSql & MaCondition".
Résultat retourné par la fonction ConditionSaisieTexte
.
Merci, j'y vois tout de même plus clair.
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
21 oct. 2008 à 19:11
Il n'en reste pas moins qu'ON NE DOIT PAS comparer un string à des integer comme ca !!
0
Rejoignez-nous