IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Recherche multicritère


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Recherche multicritère
    :
    Je ne suis pas trés fort en VB, et je voudrais faire une recherche multicritère.
    j'ai recuperer un code sur le net qu j'ai modifié, il n'y pas de bugs à priori, mais la recherche ne marche pas, je n'ai pas de resulat quand je coche une case et que je saisie une chaine de caractère ¨!

    Quelqu'un a une idée ?

    Voila le code VB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    Option Compare Database
    Private Sub chkSPECIFICATION_Click()
     
    If Me.chkSPECIFICATION Then
        Me.txtRechSPECIFICATION.Visible = False
    Else
        Me.txtRechSPECIFICATION.Visible = True
    End If
     
    RefreshQuery
     
    End Sub
     
    Private Sub chkREP_Click()
     
    If Me.chkREP Then
        Me.cmbRechREP.Visible = False
    Else
        Me.cmbRechREP.Visible = True
    End If
     
    RefreshQuery
     
    End Sub
     
    Private Sub chkIDENTNR_Click()
     
    If Me.chkIDENTNR Then
        Me.txtRechIDENTNR.Visible = False
    Else
        Me.txtRechIDENTNR.Visible = True
    End If
     
    RefreshQuery
     
    End Sub
     
    Private Sub chkTEXSPR1_Click()
     
    If Me.chkTEXSPR1 Then
        Me.txtRechTEXSPR1.Visible = False
    Else
        Me.txtRechTEXSPR1.Visible = True
    End If
     
    RefreshQuery
     
    End Sub
     
     
    Private Sub chkTC_Click()
     
    If Me.chkTC Then
        Me.cmbRechTC.Visible = False
    Else
        Me.cmbRechTC.Visible = True
    End If
     
    RefreshQuery
     
    End Sub
     
    Private Sub cmbRechREP_BeforeUpdate(Cancel As Integer)
     
    RefreshQuery
     
    End Sub
     
    Private Sub cmbRechTC_BeforeUpdate(Cancel As Integer)
     
    RefreshQuery
     
    End Sub
     
     
    Private Sub Form_Load()
     
    Dim ctl As Control
     
    For Each ctl In Me.Controls
        Select Case Left(ctl.Name, 3)
            Case "chk"
                ctl.Value = -1
     
            Case "lbl"
                ctl.Caption = "- * - * -"
     
            Case "txt"
                ctl.Visible = False
                ctl.Value = ""
     
            Case "cmb"
                ctl.Visible = False
     
        End Select
    Next ctl
     
    Me.lstResults.RowSource = "SELECT NUM, TC, REP, IDENTNR, SPECIFICATION, TEXSPR1 FROM PRICELIST;"
    Me.lstResults.Requery
     
    End Sub
     
    Private Sub RefreshQuery()
    Dim SQL As String
    Dim SQLWhere As String
    SQL = "SELECT NUM, TC, REP, IDENTNR, SPECIFICATION, TEXSPR1 FROM PRICELIST Where PRICELIST!NUM <> 0 "
     
    If Not Me.chkSPECIFICATION Then
        SQL = SQL & "And PRICELIST!SPECIFICATION like '*" & Me.txtRechSPECIFICATION & "*' "
    End If
    If Not Me.chkREP Then
        SQL = SQL & "And PRICELIST!REP '*" & Me.cmbRechREP & "*' "
    End If
    If Not Me.chkIDENTNR Then
        SQL = SQL & "And PRICELIST!IDENTNR like '*" & Me.txtRechIDENTNR & "*' "
    End If
    If Not Me.chkTC Then
        SQL = SQL & "And PRICELIST!TEXSPR1 like '*" & Me.txtRechTEXSPR1 & "*' "
    End If
    If Not Me.chkTC Then
        SQL = SQL & "And PRICELIST!TC '*" & Me.cmbRechTC & "'* "
    End If
     
    SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     
    SQL = SQL & ";"
     
    Me.lblStats.Caption = DCount("*", "PRICELIST", SQLWhere) & " / " & DCount("*", "PRICELIST")
    Me.lstResults.RowSource = SQL
    Me.lstResults.Requery
     
    End Sub
     
     
    Private Sub lstResults_DblClick(Cancel As Integer)
     
    DoCmd.OpenForm "RECHERCHE PRICELIST", acNormal, , "[NUM] = " & Me.lstResults
     
     
    End Sub
     
    Private Sub txtRechSPECIFICATION_BeforeUpdate(Cancel As Integer)
     
    RefreshQuery
     
    End Sub
     
    Private Sub txtRechIDENTNR_BeforeUpdate(Cancel As Integer)
     
    RefreshQuery
     
    End Sub
     
    Private Sub txtRechTEXSPR1_BeforeUpdate(Cancel As Integer)
     
    RefreshQuery
     
    End Sub
    modération : cafeine,
    ajout des balises [CODE]
    changement titre, ancien : Recherche multicritère : besoin d'un coup de pouce !

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    1- le titre est inadéquat
    2- merci de mettre les balises code pour la prochaine
    3-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SQL = SQL & "And PRICELIST!TC '*" & Me.cmbRechTC & "'* "
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        SQL = SQL & "And PRICELIST!REP '*" & Me.cmbRechREP & "*' "
    il manque l'opérateur logique ( = ou like ou autre ...)
    4- la solution ultime est le débogage, j'ai écrit un tuto sur le sujet :
    http://cafeine.developpez.com/access...el/debugprint/
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut kramokamo et bienvenu sur le forum,

    Tu peux aussi regarder un autre tuto de Cafeine nommé "RECHERCHE MULTI-CRITERES" ici

    A+

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par Muhad'hib
    Salut kramokamo et bienvenu sur le forum,

    Tu peux aussi regarder un autre tuto de Cafeine nommé "RECHERCHE MULTI-CRITERES" ici

    A+
    Hello

    Merci, mais je pense que son code vient de là (j'ai reconnu mon ancienne façon de coder).
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  5. #5
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut

    Merci
    C'est bon ça marche !

  6. #6
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Muhad'hib a écrit:
    Salut kramokamo et bienvenu sur le forum,

    Tu peux aussi regarder un autre tuto de Cafeine nommé "RECHERCHE MULTI-CRITERES" ici

    A+


    Hello

    Merci, mais je pense que son code vient de là (j'ai reconnu mon ancienne façon de coder).


    oui c'est vrai


  7. #7
    Candidat au Club Avatar de SIMS
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut clause sql
    verifie la clause qui ne doit pas fonctionner à mon avis

    ici tu ne prend pas la bonne variable Me.chkTC au lieu de Me.txtRechTEXSPR1

    If Not Me.chkTC Then
    SQL = SQL & "And PRICELIST!TEXSPR1 like '*" & Me.txtRechTEXSPR1 & "*' "
    End If

    ici '* au lieu de *'
    place un point d'arret apres las construction de la chaine SQL et
    dans la fenetre d'execution tappe ?sql + return et tu verras ce que tu vas executer


    If Not Me.chkTC Then
    SQL = SQL & "And PRICELIST!TC '*" & Me.cmbRechTC & "'* "
    End If

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Citation Envoyé par Cafeine
    Muhad'hib a écrit:
    Salut kramokamo et bienvenu sur le forum,

    Tu peux aussi regarder un autre tuto de Cafeine nommé "RECHERCHE MULTI-CRITERES" ici

    A+


    Hello

    Merci, mais je pense que son code vient de là (j'ai reconnu mon ancienne façon de coder).
    Excuse moi mais moi je ne reconnais ni ton ancienne façon de coder ni ta nouvelle.


    A+

Discussions similaires

  1. faire un état d'après recherche multicritère
    Par bilouk dans le forum Access
    Réponses: 4
    Dernier message: 12/01/2006, 18h30
  2. Formulaire Recherche MultiCritère et RunTime
    Par fbu78 dans le forum Runtime
    Réponses: 9
    Dernier message: 06/01/2006, 17h52
  3. Recherche multicritère
    Par Darlay Jean_Louis dans le forum Access
    Réponses: 2
    Dernier message: 26/10/2005, 09h54
  4. Réponses: 2
    Dernier message: 01/10/2005, 18h42
  5. recherche multicritères
    Par onlineduel dans le forum Débuter
    Réponses: 3
    Dernier message: 30/03/2004, 16h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo