• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 206
  • Last Modified:

How to filter record with SQL by comparing the date store in ACCESS?

My data is store at ACCESS. I've try use SQL statement in Visual Basic to filter out records that I want, but cannot. Like,
step1 :OldestDay=Date()-10

step2 : "select * from RecordingTable where StartTime <= OldestDays"

I try to use VisData to build Query also not working for Date data, it always change to String and if I change by to Date format , error will occur.
  • 2
1 Solution
If OldestDay is a variable, and StartTime is an existing field in your RecordingTable, here is your answer:

Dim OldestDay as Date

OldestDay = DateAdd("d", -10, Date)

"SELECT * FROM RecordingTable WHERE StartTime <= " & OldestDay
Éric MoreauSenior .Net ConsultantCommented:
You will need to surround the date with # like this:
"SELECT * FROM RecordingTable WHERE StartTime <= #" & OldestDay & "#"

or use the TimeValue function, that I forgot =]

"SELECT * FROM RecordingTable WHERE StartTime <= TimeValue(' " & OldestDay & "')"
If you want your program to work where the date format is not American (mm/dd/yyyy), then you will need to format it... e.g.

strSQL = "SELECT * FROM RecordingTable WHERE StartTime <= " & "#" & Format$(OldestDay, "mm/dd/yy") & "#"

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now