Appliquer un filtre sur un bindingsource suivant une date ou pas de date renseig

cs_Adi57 Messages postés 16 Date d'inscription dimanche 28 janvier 2007 Statut Membre Dernière intervention 29 juin 2011 - 28 juin 2011 à 00:23
cs_Adi57 Messages postés 16 Date d'inscription dimanche 28 janvier 2007 Statut Membre Dernière intervention 29 juin 2011 - 29 juin 2011 à 21:46
'Bonsoir à tous,
'J'ai une table dans une base de données Access 2007.
'Je souhaite Filtrer des enregistrements avec plusieurs critères.

'J'utilise le Code suivant:

'J'ai deux ComboBox l'un avec les douze mois de l'année,
' le deuxième avec les années de 2000 à 2050.

Dim MaDate1,MaDate2 as Date
Date1 = "01/" & Format(Me.ComboBox7.SelectedIndex + 1, "00") & "/" & Me.ComboBox6.Text
Date2 = Date.DaysInMonth(Me.ComboBox6.Text, Me.ComboBox7.SelectedIndex + 1) & "/" & Format(Me.ComboBox7.SelectedIndex + 1, "00") & "/" & Me.ComboBox6.Text

Me.StockTableadapter.Fill(Me.MyBaseDataset.Stock)
Me.StockBindingSource.Filter = "Fournisseur='Weber' And Stock=True And [Date Commande]<=#" & Format(Date2, "M/d/yyyy") & "# And DateVente>=#" & Format(Date2, "M/d/yyyy") & "# Or DateVente is Null"

' J'ai un DataGridView4 qui affiche les données.
' Normalement, le DataGridView devrait retourner 393 enregistrements
' mais il m'en donne 3661.

' Quelqu'un pourrait-il m'aider, je ne comprends pas la raison.

' D'avance un grand merci pour toute l'aide que vous pourrez
' m'apporter. Je serais également ravi de comprendre, si possible
' les raisons de ce comportement.

' Merci encore
A voir également:

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 juin 2011 à 07:45
Bonjour,

Je pense que tout vient de ce que contient ton champ datevente, de ce qui y a été mis.
Une donnée NULL n'est pas une donnée vide
Et quel est le type de ce champ ? si de type String : "" n'est pas NULL


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
cs_Adi57 Messages postés 16 Date d'inscription dimanche 28 janvier 2007 Statut Membre Dernière intervention 29 juin 2011
29 juin 2011 à 21:25
Bonjour,
Le type de champ est Date, abrégé.
Merci
0
cs_Adi57 Messages postés 16 Date d'inscription dimanche 28 janvier 2007 Statut Membre Dernière intervention 29 juin 2011
29 juin 2011 à 21:44
' Rebonjour,
' J'ai appliqué la modification suivante au code et cela fonctionne.

Dim MaDate1,MaDate2 as Date
Date1 = "01/" & Format(Me.ComboBox7.SelectedIndex + 1, "00") & "/" & Me.ComboBox6.Text
Date2 = Date.DaysInMonth(Me.ComboBox6.Text, Me.ComboBox7.SelectedIndex + 1) & "/" & Format(Me.ComboBox7.SelectedIndex + 1, "00") & "/" & Me.ComboBox6.Text

Me.StockTableadapter.Fill(Me.MyBaseDataset.Stock)
Me.StockBindingSource.Filter = "Fournisseur='Weber' And Stock=True And [Date Commande]<=#" & Format(Date2, "M/d/yyyy") & "# And DateVente>=#" & Format(Date2, "M/d/yyyy") & "# Or DateVente is Null"


' Merci pour vos commentaires.

À bientôt.
0
cs_Adi57 Messages postés 16 Date d'inscription dimanche 28 janvier 2007 Statut Membre Dernière intervention 29 juin 2011
29 juin 2011 à 21:46
' Désolé j'ai oublié de modifier le code.
' Donc le voici.

Dim MaDate1,MaDate2 as Date
Date1 = "01/" & Format(Me.ComboBox7.SelectedIndex + 1, "00") & "/" & Me.ComboBox6.Text
Date2 = Date.DaysInMonth(Me.ComboBox6.Text, Me.ComboBox7.SelectedIndex + 1) & "/" & Format(Me.ComboBox7.SelectedIndex + 1, "00") & "/" & Me.ComboBox6.Text

Me.StockTableadapter.Fill(Me.MyBaseDataset.Stock)
Me.StockBindingSource.Filter = "Fournisseur='Weber' And Stock=True And [Date Commande]<=#" & Format(Date2, "M/d/yyyy") & "# And DateVente>=#" & Format(Date2, "M/d/yyyy") & "# Or Fournisseur='Weber' And Stock=True And [Date Commande]<=#" & Format(Date2, "M/d/yyyy") & "# And DateVente is Null"
0
Rejoignez-nous