Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Filtrage conditionel en VBA (bis)

2 réponses
Avatar
Dan
Bonsoir =E0 tous,
N'ayant pas eu de r=E9ponse =E0 ma 1=E8re demande, je la=20
r=E9it=E8re une seconde fois.
Dans un formulaire de gestion de parc informatique, je=20
filtre soit sur le nom de l'utilisateur, soit sur la=20
marque depuis le m=EAme champ.
Ex : si je recherche des ordis de marque Dell ou HP, le=20
filtre ne trouve rien de correspondant dans le champ=20
Affectation et va donc filtrer dans le champ Ordinateur=20
Marque.
Pour que cette solution fonctionne il faudrait que je=20
puisse dire que si la recherche sur Affection <1 alors le=20
filtre doit se faire sur Ordinateur Marque.
Ci-dessous le code actuel :
Private Sub Recherche_AfterUpdate()
If Not (IsNull(Me.Recherche)) Then
Me.Filter =3D "[Affectation] like '" & CStr
(Me.Recherche) & "*'"
If Not (IsNull(Me.Affectation)) Then
Me.FilterOn =3D True
Me.Recherche =3D ""
Exit Sub
Else
Me.Filter =3D "[Ordinateur Marque] like '" & CStr
(Me.Recherche) & "*'"
End If
Me.FilterOn =3D True
End If
Me.Recherche =3D ""
End Sub

Merci d'avance pour vos conseils
Dan

2 réponses

Avatar
Buddy
Salut

Comptes d'abord le nombre d'enregistrements avec un filtre et après avise.
Dim lngNBEnreg as Long, strCritere As String

strCritere = "[Affectation] Like '" & CStr (Me.Recherche) & "*'"

lngNBEnreg = DCount("Id","TaTable", strCritere)

If lngNBEnreg > 0 Then
Me.Filter = strCritere
Else
strCritere = "[Ordinateur Marque] Like '" & CStr(Me.Recherche) & "*'"
Me.Filter = strCritere
End If

Me.FilterOn = True

Ouala
Bye
Buddy
www.mlxconseil.fr.st



"Dan" a écrit dans le message de
news:0dfb01c3df96$f9172d40$
Bonsoir à tous,
N'ayant pas eu de réponse à ma 1ère demande, je la
réitère une seconde fois.
Dans un formulaire de gestion de parc informatique, je
filtre soit sur le nom de l'utilisateur, soit sur la
marque depuis le même champ.
Ex : si je recherche des ordis de marque Dell ou HP, le
filtre ne trouve rien de correspondant dans le champ
Affectation et va donc filtrer dans le champ Ordinateur
Marque.
Pour que cette solution fonctionne il faudrait que je
puisse dire que si la recherche sur Affection <1 alors le
filtre doit se faire sur Ordinateur Marque.
Ci-dessous le code actuel :
Private Sub Recherche_AfterUpdate()
If Not (IsNull(Me.Recherche)) Then
Me.Filter = "[Affectation] like '" & CStr
(Me.Recherche) & "*'"
If Not (IsNull(Me.Affectation)) Then
Me.FilterOn = True
Me.Recherche = ""
Exit Sub
Else
Me.Filter = "[Ordinateur Marque] like '" & CStr
(Me.Recherche) & "*'"
End If
Me.FilterOn = True
End If
Me.Recherche = ""
End Sub

Merci d'avance pour vos conseils
Dan
Avatar
Merci Buddy, ça fonctionne impec

Dan

-----Message d'origine-----
Salut

Comptes d'abord le nombre d'enregistrements avec un
filtre et après avise.

Dim lngNBEnreg as Long, strCritere As String

strCritere = "[Affectation] Like '" & CStr
(Me.Recherche) & "*'"


lngNBEnreg = DCount("Id","TaTable", strCritere)

If lngNBEnreg > 0 Then
Me.Filter = strCritere
Else
strCritere = "[Ordinateur Marque] Like '" & CStr
(Me.Recherche) & "*'"

Me.Filter = strCritere
End If

Me.FilterOn = True

Ouala
Bye
Buddy
www.mlxconseil.fr.st



"Dan" a écrit dans
le message de

news:0dfb01c3df96$f9172d40$
Bonsoir à tous,
N'ayant pas eu de réponse à ma 1ère demande, je la
réitère une seconde fois.
Dans un formulaire de gestion de parc informatique, je
filtre soit sur le nom de l'utilisateur, soit sur la
marque depuis le même champ.
Ex : si je recherche des ordis de marque Dell ou HP, le
filtre ne trouve rien de correspondant dans le champ
Affectation et va donc filtrer dans le champ Ordinateur
Marque.
Pour que cette solution fonctionne il faudrait que je
puisse dire que si la recherche sur Affection <1 alors le
filtre doit se faire sur Ordinateur Marque.
Ci-dessous le code actuel :
Private Sub Recherche_AfterUpdate()
If Not (IsNull(Me.Recherche)) Then
Me.Filter = "[Affectation] like '" & CStr
(Me.Recherche) & "*'"
If Not (IsNull(Me.Affectation)) Then
Me.FilterOn = True
Me.Recherche = ""
Exit Sub
Else
Me.Filter = "[Ordinateur Marque] like '" & CStr
(Me.Recherche) & "*'"
End If
Me.FilterOn = True
End If
Me.Recherche = ""
End Sub

Merci d'avance pour vos conseils
Dan


.