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 :

Débutant> Formulaire de recherche multiple de cafeine


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 37
    Points : 15
    Points
    15
    Par défaut Débutant> Formulaire de recherche multiple de cafeine
    Bonjour

    J'aurias vuolu savoir comment utiliser le formulaire de recherche multiple de caféine opur plusieur table.

    Je m'explique.

    Au lieu d'avoir un formulaire qui recherche sur une seule table, qu'elle recherche sur plusieurs tables différentes...

    Est-ce possible?

    Merci a tous d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 115
    Points : 85
    Points
    85
    Par défaut Formulaire
    Tu veux dire un formulaire basé sur une table/requête ou Zone Liste ?

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 37
    Points : 15
    Points
    15
    Par défaut
    Il y a nue différence???

    Ce serais pour une redirection vers des tables

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 115
    Points : 85
    Points
    85
    Par défaut Plusieurs tables
    Exemple: tu as 2 tables (T1 et T2). Ton formulaire doit être d'abord basé sur l'une des deux tables (la table principale,T1 par exemple ). Ensuite tu insert un sous-formulaire basé dur T2. Ainsi de suite, tu pourras insérer autant de tables que tu veux.

    NB: Il faut qu'il y est une relation entre toutes les tables du formualire. Sinon boummmm....!!!!!!!, je n'ai rien dit...

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 37
    Points : 15
    Points
    15
    Par défaut
    Si on examine le 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
    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
    Private Sub chkAuteur_Click()
     
    If Me.chkAuteur Then
        Me.txtRechAuteur.Visible = False
    Else
        Me.txtRechAuteur.Visible = True
    End If
     
    RefreshQuery
     
    End Sub
     
     
    Private Sub chkFamille_Click()
     
    If Me.chkFamille Then
        Me.cmbRechFamille.Visible = False
    Else
        Me.cmbRechFamille.Visible = True
    End If
     
    RefreshQuery
     
    End Sub
     
    Private Sub chkResume_Click()
     
    If Me.chkResume Then
        Me.txtRechResume.Visible = False
    Else
        Me.txtRechResume.Visible = True
    End If
     
    RefreshQuery
     
    End Sub
     
    Private Sub chkTitre_Click()
     
    If Me.chkTitre Then
        Me.txtRechTitre.Visible = False
    Else
        Me.txtRechTitre.Visible = True
    End If
     
    RefreshQuery
     
    End Sub
     
     
    Private Sub chkType_Click()
     
    If Me.chkType Then
        Me.cmbRechType.Visible = False
    Else
        Me.cmbRechType.Visible = True
    End If
     
    RefreshQuery
     
    End Sub
     
    Private Sub cmbRechFamille_BeforeUpdate(Cancel As Integer)
     
    RefreshQuery
     
    End Sub
     
    Private Sub cmbRechType_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 CodMedia, Titre, Auteur, Famille, Type FROM Medias;"
    Me.lstResults.Requery
     
    End Sub
     
    Private Sub RefreshQuery()
    Dim SQL As String
    Dim SQLWhere As String
     
    SQL = "SELECT CodMedia, Titre, Auteur, Famille, Type FROM Medias Where Medias!CodMedia <> 0 "
     
    If Not Me.chkAuteur Then
        SQL = SQL & "And Medias!Auteur like '*" & Me.txtRechAuteur & "*' "
    End If
    If Not Me.chkFamille Then
        SQL = SQL & "And Medias!Famille = '" & Me.cmbRechFamille & "' "
    End If
    If Not Me.chkResume Then
        SQL = SQL & "And Medias!Résumé like '*" & Me.txtRechResume & "*' "
    End If
    If Not Me.chkTitre Then
        SQL = SQL & "And Medias!Titre like '*" & Me.txtRechTitre & "*' "
    End If
    If Not Me.chkType Then
        SQL = SQL & "And Medias!Type = '" & Me.cmbRechType & "' "
    End If
     
    SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     
    SQL = SQL & ";"
     
    Me.lblStats.Caption = DCount("*", "Medias", SQLWhere) & " / " & DCount("*", "Medias")
    Me.lstResults.RowSource = SQL
    Me.lstResults.Requery
     
    End Sub
     
     
    Private Sub lstResults_DblClick(Cancel As Integer)
     
    DoCmd.OpenForm "frmAutoMedias", acNormal, , "[CodMedia] = " & Me.lstResults
     
     
    End Sub
     
    Private Sub txtRechAuteur_BeforeUpdate(Cancel As Integer)
     
    RefreshQuery
     
    End Sub
     
    Private Sub txtRechResume_BeforeUpdate(Cancel As Integer)
     
    RefreshQuery
     
    End Sub
     
    Private Sub txtRechTitre_BeforeUpdate(Cancel As Integer)
     
    RefreshQuery
     
    End Sub
    Il faudra juste ajouter atant de fois le code suivant que de table :

    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
    Private Sub RefreshQuery()
    Dim SQL As String
    Dim SQLWhere As String
     
    SQL = "SELECT CodMedia, Titre, Auteur, Famille, Type FROM Medias Where Medias!CodMedia <> 0 "
     
    If Not Me.chkAuteur Then
        SQL = SQL & "And Medias!Auteur like '*" & Me.txtRechAuteur & "*' "
    End If
    If Not Me.chkFamille Then
        SQL = SQL & "And Medias!Famille = '" & Me.cmbRechFamille & "' "
    End If
    If Not Me.chkResume Then
        SQL = SQL & "And Medias!Résumé like '*" & Me.txtRechResume & "*' "
    End If
    If Not Me.chkTitre Then
        SQL = SQL & "And Medias!Titre like '*" & Me.txtRechTitre & "*' "
    End If
    If Not Me.chkType Then
        SQL = SQL & "And Medias!Type = '" & Me.cmbRechType & "' "
    End If
     
    SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     
    SQL = SQL & ";"
     
    Me.lblStats.Caption = DCount("*", "Medias", SQLWhere) & " / " & DCount("*", "Medias")
    Me.lstResults.RowSource = SQL
    Me.lstResults.Requery
     
    End Sub
    Ou peut etre pas... J'ai pas trè bien compris

  6. #6
    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,

    est-ce que tes tables sont liées ?
    . si oui : ben il faut travailler sur une requête qui les lie
    . si non : il s'agit de plusieurs recherches donc oui, dupliquer le code ...

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 37
    Points : 15
    Points
    15
    Par défaut
    Alors les tables sont effectivement liées...

  8. #8
    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
    Alors, l'idée c'est que tu fasses une requête qui ramene tout tes enregistrements.
    Ensuite tu n'auras qu'à remplacer le nom de table dans le SQL par le nom de la requête.

  9. #9
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 37
    Points : 15
    Points
    15
    Par défaut
    Merci bcp

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

Discussions similaires

  1. [2.x] Symfony 2/doctrine2 formulaire de recherche par choix multiple
    Par laurentche dans le forum Symfony
    Réponses: 2
    Dernier message: 03/02/2014, 18h54
  2. [MySQL] récupération variable formulaire recherches multiples
    Par Evelyne31 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 30/10/2012, 21h01
  3. [PHP 5.3] Formulaire de recherche, value multiple
    Par Pierrea4564 dans le forum Langage
    Réponses: 2
    Dernier message: 30/11/2011, 13h02
  4. [Toutes versions] requête multiple dans formulaire de recherche multi critère.
    Par Lyude dans le forum IHM
    Réponses: 16
    Dernier message: 11/05/2010, 19h51
  5. Formulaire de recherche multicriteres par cafeine
    Par jo-popo dans le forum Access
    Réponses: 8
    Dernier message: 12/01/2006, 01h53

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