Bonjour,
Comme annoncé en objet, j'ai un formulaire avec des listes déroulantes et des champs textes.
Deux champs date début et date fin peuvent être définies par l'utilisateur et constituent ma 1ère condition.
Ma seconde condition est un autre élément d'une liste ou champ texte.
Vous trouverez mon code ci-dessous.
Le problème que je rencontre, c'est que je ne peux pas ouvrir un état si mon deuxième filtre est de format monétaire.Par défaut, il m'ouvre l'intervalle des montants définis mais, toutes les dates, depuis le début de création de ma base
Exemple :
Je veux comme montant min : 250 et max 500 pour la période du 15/03/2011 au 19/11/2011 il va me sortir tous les enregistrements compris entre 250 et 300 euros et ce quelques soit la date début et/ou date fin:
Comment ouvrir mon état avec condition date et monétaire.
J'insiste à nouveau, la date choisie plus un autre élément de mes listes déroulantes, fonctionnent;Seul avec le montant, ça coince
J'espère avoir été clair et vous remercie
Je vous remercie
Comme annoncé en objet, j'ai un formulaire avec des listes déroulantes et des champs textes.
Deux champs date début et date fin peuvent être définies par l'utilisateur et constituent ma 1ère condition.
Ma seconde condition est un autre élément d'une liste ou champ texte.
Vous trouverez mon code ci-dessous.
Le problème que je rencontre, c'est que je ne peux pas ouvrir un état si mon deuxième filtre est de format monétaire.Par défaut, il m'ouvre l'intervalle des montants définis mais, toutes les dates, depuis le début de création de ma base
Exemple :
Je veux comme montant min : 250 et max 500 pour la période du 15/03/2011 au 19/11/2011 il va me sortir tous les enregistrements compris entre 250 et 300 euros et ce quelques soit la date début et/ou date fin:
Comment ouvrir mon état avec condition date et monétaire.
J'insiste à nouveau, la date choisie plus un autre élément de mes listes déroulantes, fonctionnent;Seul avec le montant, ça coince
J'espère avoir été clair et vous remercie
Je vous remercie
Code:
Dim strfiltre As String, stDocName As String, strdatedebut As String, strdatefin As String, strintervalle As String
Dim strfil As String
strdatedebut = Nz(Me.txtdatedebut, "")
strdatefin = Nz(Me.txtdatefin, "")
If IsDate(strdatedebut) And IsDate(strdatefin) Then
strdatedebut = Format(Me.txtdatedebut, "dd/mm/yyyy")
strdatefin = Format(Me.txtdatefin, "dd/mm/yyyy")
End If
strintervalle = "[Date d'enregistrement]>=#" & strdatedebut & "# AND [Date d'enregistrement]<#" & strdatefin & "#"
If Me.FilterOn Then
strfil = "WHERE " & Me.Filter & " AND " & strintervalle
Else
strfil = strintervalle
End If
stDocName = "Analyse : Suivi des affaires"
' strwhere = "[Qui]='" & Me!Qui & "'"
'filtre sur personne
If Not IsNull(Me!cmbqui) Then
strfiltre = "[Qui]='" & Me!cmbqui & "'"
End If
'filtre sur bl
If Not IsNull(Me.cmbbl) Then
If strfiltre <> "" Then strfiltre = strfiltre & " And "
strfiltre = strfiltre & "[bl]='" & Me.cmbbl & "'"
End If
'filtre sur cofor
If Not IsNull(Me.cmbcofor) Then
If strfiltre <> "" Then strfiltre = strfiltre & " And "
strfiltre = strfiltre & "[Cofor]='" & Me.cmbcofor & " '"
End If
'filtre sur ano
If Not IsNull(Me.cmbano) Then
If strfiltre <> "" Then strfiltre = strfiltre & " And"
strfiltre = strfiltre & "[Ano constatée]='" & "" & "" & Me.cmbano & "'"
End If
'filtre sur date facture
strfil = "[Date d'enregistrement]>=#" & strdatedebut & "# AND [Date d'enregistrement]<#" & strdatefin & "#"
If Me.FilterOn Then
strfil = "WHERE " & Me.Filter & " AND " & strintervalle
strfil = strintervalle
End If
strdatedebut = Nz(Me.txtdatedebut, "")
strdatefin = Nz(Me.txtdatefin, "")
If IsDate(strdatedebut) And IsDate(strdatefin) Then
strdatedebut = Format(Me.txtdatedebut, "dd/mm/yyyy")
strdatefin = Format(Me.txtdatefin, "dd/mm/yyyy")
strintervalle = "[Date d'enregistrement]>=#" & strdatedebut & "# AND [Date d'enregistrement]<#" & strdatefin & "#"
End If
If Not IsNull(Me.txtdatedebut) Then
If strfil <> "" Then strfil = strfil & " AND "
strfil = strfil & "[Date d'enregistrement]=#" & Me.txtdatedebut & "#"
End If
If Not IsNull(Me.txtdatefin) Then
If strfil <> "" Then strfil = strfil & " And "
strfil = strfil & "[Date d'enregistrement]=#" & Me.txtdatefin & "#"
End If
'filtre sur référence
If Not IsNull(Me.cmbref) Then
If strfiltre <> "" Then strfiltre = strfiltre & " And "
strfiltre = strfiltre & "[Référence]='" & Me.cmbref & "'"
End If
'filtre sur filière
If Not IsNull(Me.cmbfilière) Then
'If strfiltre <> "" Then strfiltre = strfiltre & " And "
strfiltre = "[filière]='" & Me!cmbfilière & " '"
'strfiltre = strfiltre & "[filière]='" & Me.cmbfilière & " '"
End If
'filtre sur montant
If Not IsNull(Me.txtmontantmin) Then
If strfiltre <> "" Then strfiltre = strfiltre & " And "
strfiltre = strfiltre & "([Montant HT]>=" & Me.txtmontantmin & ")"
End If
If Not IsNull(Me.txtmontantmax) Then
If strfiltre <> "" Then strfiltre = strfiltre & " And "
strfiltre = strfiltre & "([Montant HT]<=" & Me.txtmontantmax & ")"
End If
DoCmd.OpenReport stDocName, acViewPreview, , strfiltre
End Sub