Forum Clubic

[Résolu] Remplacement de variable - Sous Access

Bonjour!

Suite à une demande antérieur, j’ai reçu une aide concernant les requetes multiples suivi de code VB ( un peu :’( ).
L’exemple utilisé ne correspond pas ( forcement ) avec ma base de données, je change alors les variables, et rien n’y fait ca ne fonctionne pas, alors, si quelqu’un savait changer les variables ? où les changer ? ou encore m’expliquer le code…car c’est la muise totale



 Option Compare Database

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 

Suivi d’un petit screen !

Merci pour vos réponses :hello:

:hello:

Faut les changer partout les variables aussi bien le code que dans ton formulaire

Sinon ce code est déjà pas mal expliqué ici
http://cafeine.developpez.com/access/tutor…recherchemulti/

il y a une partie que tu ne comprend pas particulièrement ?

La partie qui me taquine le plus c’est :

 
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

Par rapport à cet exemple la , je souhaiterai faire intervenir plusieurs tables !