Fonction FILTRE en Visual Basic 6

cs_kimou75 Messages postés 93 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 27 février 2005 - 24 févr. 2005 à 13:36
cs_kimou75 Messages postés 93 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 27 février 2005 - 24 févr. 2005 à 14:29
bonjour.

j'ai créé un filtre, afin d'obtenir la requete qui corespond à ce que l'utilisateur a rentré dans le textbox.
Mais aparament ca ne marche pas trop. je pense que l'érreur vient de mon "between",mais je suis pas du tout sur.
je voulais savoir si vous voyez quelquechose d'anormal.
merci

Public Sub MaJDataGrid()


Dim Chaine As String
Dim TaDatedeb, TaDateFin As Date
MoisActu = Month(Now)
AnneeActu = Year(Now)


MoisActu = MoisActu - 1
TaDatedeb = DateValue("01/" & MoisActu & "/" & AnneeActu)
TaDateFin = DateValue("31/" & MoisActu & "/" & AnneeActu)

With FormRecherch


If .TxTitul.Text "" And .TxtNumPost.Text "" And .TxtUC.Text = "" And .TxtDateDeb.Text = "" And .TxtDateFin.Text = "" And .TxtHdeb.Text = "" And .TxtHfin.Text = "" Then
RSTax.Filter = ""
RSTax.Requery
Else
Chaine = ""
If .TxTitul.Text <> "" Then
Chaine = "Titulaire like '" & .TxTitul.Text & "*' "
End If

If .TxtNumPost.Text <> "" Then
Chaine = Chaine & " and Poste like '" & .TxtNumPost.Text & "*' "
End If

If .TxtUC.Text <> "" Then
Chaine = Chaine & " and UC like '" & .TxtUC.Text & "*'"
End If
If .TxtDateDeb.Text "" And .TxtDateFin.Text "" Then
.TxtDateDeb.Text = TaDatedeb
.TxtDateFin.Text = TaDateFin
Chaine = Chaine & " and Date de l'appel between '" & .TxtDateDeb.Text & "*' and '" & .TxtDateFin.Text & "*' "
End If

If .TxtDateDeb.Text <> "" And .TxtDateFin.Text <> "" Then
Chaine = Chaine & " and Date de l'appel between '" & .TxtDateDeb.Text & "*' and '" & .TxtDateFin.Text & "*' "
End If

If Left(Chaine, 4) = " and" Then
Chaine = Mid(Chaine, 5)
End If
RSTax.Filter = Chaine
End If
.DataGrid2.Refresh
End With


End Sub

4 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
24 févr. 2005 à 13:44
Salut,



Essai d'encadrer ta date de #

baetween #01/01/2005# and #02/01/2005#
0
cs_kimou75 Messages postés 93 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 27 février 2005
24 févr. 2005 à 13:56
je viens d'éssayer, je l'ais écris de cette facon:
If .TxtDateDeb.Text "" And .TxtDateFin.Text "" Then
.TxtDateDeb.Text = TaDatedeb
.TxtDateFin.Text = TaDateFin
Chaine = Chaine & " and Date de l'appel between '" & "#" & .TxtDateDeb.Text & "#" & "' and '" & "#" & .TxtDateFin.Text & "#" & "' "

ils me disent que le type est incompatible
0
cs_hassen Messages postés 338 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 4 novembre 2008
24 févr. 2005 à 14:14
bonjour,
il faut faire attention car dans la recherche de date la date doit etre de la forme suivante mois/jour/annee donc tu devra faire la modification suivante dans ton code:

TaDatedeb =DateValue(MoisActu & "/01/" & AnneeActu)
TaDateFin = DateValue(MoisActu & "/31/" & AnneeActu)

et aussi tu suppose dans ton code que tous les mois contiennent 31 jours or la date 31/02/2005 n'existe pas donc pour connaitre la date fin du mois precedent :
dim d as date
d=DateValue("01/" & MoisActuel & "/" & anneeActuel)
d=d-1

Hassen TUNISIE
0
cs_kimou75 Messages postés 93 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 27 février 2005
24 févr. 2005 à 14:29
salut Hassen.

dans mon SGBD le format de ma date est jj/mm/aaaa.
donc l'erreur ne peut pas provenir de là.

meme quand je rentre une date au bon format dans mes textbox, ca me donne
l'erreur suivante:
les arguments sont de types incorrect, en dehors des limites autorisées ou en comflit les uns avec les autres.

voila comment j'ai encor reécris mon code.

If .TxtDateDeb.Text <> "" And .TxtDateFin.Text <> "" Then
Chaine = Chaine & " and Date de l'appel between " & "#" & .TxtDateDeb.Text & "#" & " and " & "#" & .TxtDateFin.Text & "#"
End If
0
Rejoignez-nous