Omdraaien van datums?

Status
Niet open voor verdere reacties.

Robbin R

Gebruiker
Lid geworden
14 jul 2010
Berichten
29
Ik heb het volgende:
tabel tblProductions
formulier frmSearch
formulier frmProductions

In het formulier frmSearch kan ik bepaalde velden invullen, te weten Title, ID-number, Customer, Contact person, etc.
Als ik dan op de knop cmdSearch klik, wordt het formulier frmSearch geopend, waarbij de resultaten gefilterd zijn op de ingevulde waarden.

Nu zou ik ook graag kunnen zoeken op een datumwaarde.
In de tabel tblProductions bestaat het veld PDFsReadyPlan (gegevenstype: Datum/tijd, Notatie: Middellange datumnotatie)

In het formulier frmSearch is daarvoor een veld PDSsReady (genaamd: txtPDFsReadyPlan, Notatie: Middellange datumnotatie)

De gebruiker moet nu een waarde in kunnen voeren op het frmSearch, vervolgens moeten de resultaten gefilterd worden in frmProductions.
Hierbij moeten alleen de items worden weergegeven waarvoor geldt dat:
tblProductions.PDFsReadyPlan <= txtPDFsReadyPlan

Ik heb hiervoor onderstaande code:
Code:
    ' DATUMS CONTROLEREN
    ' **PDFs ready plan**
    ' Is PDFs ready plan ingevuld
    If Not Nz(Me.txtPDFsReadyPlan, "") = "" Then
        ' Is een geldige datumwaarde ingevoerd
        If Not IsDate(Me.txtPDFsReadyPlan) Then
            ' Waarschuwen: geen geldige datum
            MsgBox "U moet een geldige datum invoeren.", vbInformation, "Zoeken"
            Exit Sub
        Else
            ' Bevestigen dat een juiste datumwaarde is gebruikt
            MsgBox "Datum: " & Me.txtPDFsReadyPlan, vbInformation, "Zoeken"
        End If
    End If

[...]

    ' Moeilijke gedeelte, want met datums
    ' Als PDFs ready plan is ingevuld
    If Not Nz(Me.txtPDFsReadyPlan, "") = "" Then
        ' .. dan maak datumfilter
        varDateSearch = "tblProductions.PDFsReadyPlan <= #" & Me.txtPDFsReadyPlan & "#"
        MsgBox varDateSearch, vbInformation, "Zoeken"
    End If

Het lijkt er nu op dat de datum die op frmSearch wordt ingevoerd door de gebruiker, wordt omgedraaid, d.w.z. dat maand en dag worden verwisseld.

In de tabel heb ik nl. onderstaande waarden:
PDFsReadyPlan
4-jul-2010
5-jul-2010
6-aug-2010
5-sep-2010
6-jan-2010
5-mei-2010

Als ik bijv. zoek met: 7-sep-2010, dan krijg ik vier items (6-1-2010, 5-5-2010, 4-7-2010, 5-7-2010)
Als ik zoek met: 7-apr-2010, dan krijg ik drie items (6-1-2010, 5-5-2010, 4-7-2010)
Als ik zoek met: 1-sep-2010, dan krijg ik één item (6-1-2010)

Heeft iemand een idee hoe ik dit kan oplossen?
 
SQL gebruikt amerikaanse datumnotatie, dus 5-6 en 6-5 etc worden verkeerd gelezen. Je zult dus de datum moeten omzetten naar een getal, en in de query moeten terug converteren naar een datum:
Code:
varDateSearch = "tblProductions.PDFsReadyPlan <= CDate(" & cDbl(Me.txtPDFsReadyPlan) & ")"
 
Thanks.

Dat vermoeden had ik al. Alleen ik kon er niet achterkomen waar ik het dan moest aanpassen.
Als Month(Me.txtPDFsReadyPlan) deed, gaf Access voor bijv. 7-9-2010, wel gewoon 9 van september.

Maar dit werkt nu. Top!:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan