reneemettrie
Terugkerende gebruiker
- Lid geworden
- 1 aug 2006
- Berichten
- 1.279
Ik heb een raar probleem in Access. Op een formulier staat een keuzelijst met datums (bron is een tabel). Er moet gefilterd worden op de gekozen datum.
Als je dan zonder kunstgrepen wil filteren op een datum worden dag en maand omgedraaid en krijg je de resultaten voor 1/2 ipv 2/1 (knop probleem)
Ik wou dat oplossen door de waarde van de combobox om te zetten naar een getal met de clng functie.
(knop Solution)
Dit werkt de eerste keer dat je de filter toepast. Het type van het combobox resultaat wordt geïnterpreteerd als "date" (code bij cbo_Date_AfterUpdate())
Maar eens een filter één keer toegepast werd, wordt het type van het combobox resultaat plots als een "string" geïnterpreteerd, en dan werkt de filter alleen met deze waarde: DateAsNumber = CLng(CDate(cbo_Date.Value)), zonder die Cdate erbij krijg je een type mismatch
Ik begrijp niet wat hier gaande is
Klopt het dat je hier geen Access bestand kunt uploaden? Ik heb dan maar de extensie naar docx gewijzigd,weet niet of dat werkt...
Als je dan zonder kunstgrepen wil filteren op een datum worden dag en maand omgedraaid en krijg je de resultaten voor 1/2 ipv 2/1 (knop probleem)
Ik wou dat oplossen door de waarde van de combobox om te zetten naar een getal met de clng functie.
Code:
DateAsNumber = CLng(cbo_Date.Value)
Dit werkt de eerste keer dat je de filter toepast. Het type van het combobox resultaat wordt geïnterpreteerd als "date" (code bij cbo_Date_AfterUpdate())
Maar eens een filter één keer toegepast werd, wordt het type van het combobox resultaat plots als een "string" geïnterpreteerd, en dan werkt de filter alleen met deze waarde: DateAsNumber = CLng(CDate(cbo_Date.Value)), zonder die Cdate erbij krijg je een type mismatch
Ik begrijp niet wat hier gaande is

Klopt het dat je hier geen Access bestand kunt uploaden? Ik heb dan maar de extensie naar docx gewijzigd,weet niet of dat werkt...
Code:
Private Sub cbo_Date_AfterUpdate()
MsgBox TypeName(ActiveControl.Value)
End Sub
Private Sub cmd_Problem_Click()
If IsNull(cbo_Date) Then
MsgBox "Choose a date!"
cbo_Date.SetFocus
Exit Sub
End If
DoCmd.ApplyFilter wherecondition:="SalesDate = #" & cbo_Date & "#"
End Sub
Private Sub cmd_ShowAll_Click()
DoCmd.ShowAllRecords
End Sub
Private Sub cmd_Solution_Click()
Dim DateAsNumber As Long
If IsNull(cbo_Date) Then
MsgBox "Choose a date!"
cbo_Date.SetFocus
Exit Sub
End If
'DateAsNumber = CLng(cbo_Date.Value)
'dit werkt alleen als de filteropdracht voor het eerst werd uitgevoerd
DateAsNumber = CLng(CDate(cbo_Date.Value))
DoCmd.ApplyFilter wherecondition:="SalesDate = " & DateAsNumber
End Sub