How to update the date to the previous month, but keep the day static at the first of the month? The import doesn't populate the date - ms-access

We have an excel import, but it doesn't have the date. I wanna populate the date in access, so is there a way I could do that on the table or could I create an after update macro to populate the date after import automatically? I was able to get the formula "? Format(DateAdd("m", -1, Date()), "mmyy")" to get the previous month, but I've been struggling to make the day part of the date static

Use DateSerial to obtain the first day of the previous month:
DateSerial(Year(Date()), Month(Date()) - 1, 1)

Related

SSRS date parameter : report start date should be yestardays on daily bases but on monday it should be friday's date

In my report I want to populate date parameter automatically. on daily bases date need to be select previous day (today()-1) , but on Monday it need to select Friday date.
please help me to write a function around this
I have date parameter in my report.
You can achieve this using Weekday(). Make sure the parameter has the Date/Time data type, and use this expression as the default value:
=DateAdd(DateInterval.Day,
IIF( Weekday(Today(),0) = 1, -3, -1),
Today())
The function Weekday(Today(),0) will equal 1 when today's date is a Monday. If true, you subtract three days from today's date to get the previous Friday. If not, you subtract 1 to get yesterday.

Get all dates for a specific day of week (e.g. Monday) between 2 dates

Consider given 2 dates between 2015-01-01 and 2015-01-30, I need to find the dates for every Monday and every Sunday during that period.
I have a report, the user needs to select a date range, and from the date range it calculates each first-day-of-week and last-day of week and passes it in that way.
How it currently works in SSRS is
exec storedprocname
#BD=N'798211,798654,798664,798826',
#CGNo=N'47',
#SCGNo=N'4701,4702,4703,4704,4705,4706,4707,4708',
#ProductClass=N'1,2,4,3',
#ProductCode=N'1020',
#Region=N'772',
#FirstDayOfWeek='2014-01-06 00:00:00',
#LastDayOfWeek='2014-01-12 00:00:00'
User selects multiple Mondays and Sundays, the report is a matrix table and matrix's on first day of week
FirstdayOfWeek = '2014/06/09,2014/06/16'
LastdayOfWeek = '2014/06/15,2014/06/23'
What I need is a date range the user selects this and it will still pass it in the same way
#startdate '2015/01/01' = Thursday (for this select current week's Monday)
#startdate '2015/02/01' = Sunday
You can use SSRS inbuilt function WEEKDAYNAME
=WEEKDAYNAME(DATEPART("dw", Fields!myDate.Value)
OR
=WEEKDAYNAME(DATEPART("w", Fields!myDate.Value)
You can use weekdayname function to filter your dataset or matrix or use in Iff expression.
If you want to handle it in SQL Server you can use dataname function.

access query that returns records for previous year up to same day, same month as today but for previous year

I need help specifying an access criteria on a date field that would pull records from my database from the beginning of last year, 1/1/2014 to a date that has the same day, and same month as today. The reason for this information is to be able to able to compare year-to-date records(and later counts) for this year to year-to-date's count for last year... thus, if today's date is 8/20/2015, I would want to be able to pull from 1/1/2015 to 8/20/2015 and then compare it to 1/1/2014 to 8/20/2014.
Just for heads-up, I am using the same query and form to count records based on weekly, quarterly date-ranges, and so I cannot use textboxes with "Start" and "End" dates. Also, I cannot pre-specify any date in my query. Any idea will be greatly appreciated. Thank you all.
To get last year's year-to-date DateSerial will do what you want.
Where [DateColumn] >= DateSerial(year(now)-1,1,1)
and [DateColumn] <= DateSerial(year(now)-1,month(now),day(now))
Another option
Where [DateColumn] >= dateadd("yyyy", datediff("yyyy", 0, now)-2, 2 )
and [DateColumn <= DateAdd("yyyy",-1, now)
You need to use Date() in SQL:
Where [DateColumn] >= DateSerial(Year(Date())-1,1,1)
And [DateColumn] <= DateAdd("yyyy",-1,Date())
The following expression can be used as the criteria for the date field in the query designer
>="01/01/" & (Year(Date())-1) AND <=Day(Date()) & "/" & Month(Date()) & "/" & Year(Date())-1
Warning: using strings to build dates should be avoided when possible. DateSerial() is a better approach, but this will work in MS Access (Jet/ACE).

SSRS daily subscription for monthly report

I have a SSRS report which is executed and delivered daily to emails. The report calculates some numbers for the 1st date of the month to the (d-1)th date (d being the day when it is executed). So the default parameter values in this report are :
Start_date :=DateSerial(Year(Date.Now), Month(Date.Now), 1)
End_date :=DateAdd("d",-1,Today())
The problem is on 1st of every new month , the start date evaluates to 1st of new month and the end date becomes the last date of previous month. This makes the report non-sensical on 1st of every month.
What should we do to avoid this and force the expression to evaluate 1st of the new month as start and end date ?
For the End Date, perhaps check if it's the 1st of the month and then default to the current date (i.e. the 1st) if it is:
=Iif(
Day(DateTime.Today) = 1,
DateTime.Today,
DateAdd("d",-1,DateTime.Today)
)
But I'm assuming there is a reason your are using today-1 as the end date, so this could mean your report shows nothing for the 1st day of the month...

Access adding 21 days to a date

Is it possible to have a date in a field in a db called entry date, and a field called finish date, the entry date will be pre populated but i want the finish date to be 21 days later, is there a method to be able to do this?
Thanks
You appear to be using Microsoft Access. The finish date field (column) can be updated in the After Update event of a start date control on a form, or you can create a query that updates the field, or since Access 2010, you can use a data macro. However, if the date is always 21 days in advance of the start date, do you need a field (column) at all? A query will allow you to show the end date easily enough:
SELECT StartDate, StartDate + 21 As EndDate
FROM MyTable
In opposite of Excel that directly you can add to date There is Function to add day or month or year to Date in Access.
Exmaples:
DateAdd('d', 130 , Date)
DateAdd('d', 430 , FirstDate) //add month and year by calculating extra days
DateAdd('m',3 , Date)
DateAdd('y', 2 , Date)