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

Access Discussion :

problème recherche multi critère


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 20
    Points
    20
    Par défaut problème recherche multi critère
    Bonjour

    Désolé de recréer une discussion sur ce sujet mais là, j'ai beau chercher je ne trouve pas la solution.
    Voila j'ai crée un formulaire de recherche grace au tuto de cafeine.
    J'ai crée 3 combobox: LIEU, NOMSERVICES, THEMEPHOTO
    et 2 textbox: NOMPHOTOS et OCCASION
    Mes 2 textbox marchent, et seulement ma combobox lieu marche. Mes 2 autres combobox ne marchent pas, et bizarrement ce sont mes deux clés étrangères. Est ce a cause de cela qu'elles ne fonctionnent pas?
    Ma clé primaire est NOMPHOTOS.
    Voici mon code
    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
     
    Option Compare Database
    Private Sub chkLIEU_Click()
    If Me.chkLIEU Then
        Me.CmbRechLieu.Visible = False
    Else
        Me.CmbRechLieu.Visible = True
    End If
    RefreshQuery
    End Sub
    Private Sub chkNOMPHOTOS_Click()
    If Me.chkNOMPHOTOS Then
        Me.txtrechNOMPHOTOS.Visible = False
    Else
        Me.txtrechNOMPHOTOS.Visible = True
    End If
    RefreshQuery
    End Sub
     
    Private Sub chkNOMSERVICES_Click()
    If Me.chkNOMSERVICES Then
        Me.cmbRechNOMSERVICES.Visible = False
    Else
        Me.cmbRechNOMSERVICES.Visible = True
    End If
    RefreshQuery
    End Sub
    Private Sub chkOCCASION_Click()
    If Me.chkOCCASION Then
        Me.txtRechOCCASION.Visible = False
    Else
        Me.txtRechOCCASION.Visible = True
    End If
    RefreshQuery
    End Sub
    Private Sub chkTHEMEPHOTO_Click()
    If Me.chkTHEMEPHOTO Then
        Me.cmbRechTHEMEPHOTO.Visible = False
    Else
        Me.cmbRechTHEMEPHOTO.Visible = True
    End If
    RefreshQuery
    End Sub
     
    Private Sub CmbRechLieu_BeforeUpdate(Cancel As Integer)
    RefreshQuery
    End Sub
    Private Sub cmbRechTHEMEPHOTO_BeforeUpdate(Cancel As Integer)
    RefreshQuery
    End Sub
    Private Sub cmbRechNOMSERVICES_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 NOMPHOTOS, DATE, LIEU, OCCASION, THEMEPHOTO, NOMSERVICES FROM tblPHOTOS;"
    Me.lstresults.Requery
    End Sub
    Private Sub RefreshQuery()
    Dim SQL As String
    Dim SQLWhere As String
    SQL = "SELECT NOMPHOTOS, DATE, LIEU, OCCASION, THEMEPHOTO, NOMSERVICES, NOMPERSONNES FROM tblPHOTOS Where tblPHOTOS!NOMPHOTOS <> '' "
    If Not Me.chkNOMPHOTOS Then
        SQL = SQL & "And tblPHOTOS!NOMPHOTOS like '*" & Me.txtrechNOMPHOTOS & "*' "
    End If
    If Not Me.chkNOMSERVICES Then
        SQL = SQL & "And tblPHOTOS!NOMSERVICES = '" & Me.cmbRechNOMSERVICES & "' "
    End If
    If Not Me.chkTHEMEPHOTO Then
        SQL = SQL & "And tblPHOTOS!THEMEPHOTO = '" & Me.cmbRechTHEMEPHOTO & "' "
    End If
    If Not Me.chkLIEU Then
        SQL = SQL & "And tblPHOTOS!LIEU = '" & Me.CmbRechLieu & "' "
    End If
    If Not Me.chkOCCASION Then
         SQL = SQL & "And tblPHOTOS!OCCASION like '*" & Me.txtRechOCCASION & "*' "
    End If
    SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
    SQL = SQL & ";"
    Debug.Print SQL
    Me.lblStats.Caption = DCount("*", "tblPHOTOS", SQLWhere) & " / " & DCount("*", "tblPHOTOS")
    Me.lstresults.RowSource = SQL
    Me.lstresults.Requery
    End Sub
     
    Private Sub lstResults_DblClick(Cancel As Integer)
    DoCmd.OpenForm "tblPHOTOS", acNormal, , "[NOMPHOTOS] = '" & Me.lstresults & "'"
     
    End Sub
    Private Sub txtRechNOMPHOTOS_BeforeUpdate(Cancel As Integer)
    RefreshQuery
    End Sub
    Private Sub txtRechOCCASION_BeforeUpdate(Cancel As Integer)
    RefreshQuery
    End Sub

  2. #2
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 54
    Points : 48
    Points
    48
    Par défaut
    Je crois que ca ne fonctionne pas parce que tu appelle ta fonction Refreshquery sur l'énenement before update, a ta place, j'essaierais sur l'évenement after update ou ajouter .text (Me.cmbRechTHEMEPHOTO.text)

  3. #3
    Membre du Club Avatar de Badboy62cfp
    Inscrit en
    Mai 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2005
    Messages : 109
    Points : 58
    Points
    58
    Par défaut
    tu peux envoyer ta base? j'ai fais ce type de formuliare la semaine dernière et je trouve que finalement c'est pas trés compliqué..La regarder du code c'est pas trop mon truc donc si tu peux envoyer je veux bien y jeter un oeuil.

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 20
    Points
    20
    Par défaut
    Désolé de vous répondre aussi tard, mais finalement j'ai réussi à résoudre le problème.
    En fait, le problème venait bien de mes clés étrangères, et je n'avais pas mis les crochets ainsi que #.
    La solution était donc celle ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQL = SQL & "And tblPHOTOS![#NOMSERVICES] = '" & Me.cmbRechNOMSERVICES & "' "
    Dire que j'ai bloqué des erreurs sur une erreur aussi bête

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Problème recherche multi-critères
    Par Meph-Dev dans le forum IHM
    Réponses: 3
    Dernier message: 13/05/2009, 10h54
  2. Problème avec le tutoriel Recherche Multi-critère
    Par Darki dans le forum VBA Access
    Réponses: 2
    Dernier message: 10/08/2007, 17h50
  3. Réponses: 7
    Dernier message: 26/10/2006, 15h13
  4. problème SQL avec le tutoriel recherche multi critère
    Par qbihlmaier dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/12/2005, 19h33
  5. problème avec résultat de recherche multi-critères
    Par audrey_desgres dans le forum Access
    Réponses: 2
    Dernier message: 23/06/2005, 11h00

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