Visual Basic - 每个月的最后一天执行代码

时间:2014-07-15 03:22:00

标签: vb.net visual-studio-2010 sql-server-2008 vba

我正在使用会计系统开发库存,我有一个代码可以获取每月的开始/结束库存并将其保存到我的数据库(SQL Server 2008)。

如果日期完全该月的最后一个日期,我的系统现在能够获得每月的开始/结束库存。

例如,如果今天的日期是2014年6月30日,那么当用户登录系统时,我的代码将会执行。现在,我的问题是,如果该月的最后一天是非工作日,那么用户将不会使用该系统,并可能在下一个工作日使用它。

我使用DateSerial(Year(Date.Now),Month(Date.Now)+ 1,-1)来获取当月的最后一天。

如果日期是一个月的最后一天或更长时间,我需要执行我的代码。

2 个答案:

答案 0 :(得分:0)

答案在你的问题中。您正在写入SQL Server中的表,我假设这与相关月份一致。写一小段代码,以获得存储在表中的最大日期,将其与今天的日期进行比较,并在适当的时候运行代码。

今天是2014年7月15日,如果您的表格中的MAX是2014年6月30日,则不执行任何操作,如果是2014年5月31日,则运行您的代码。

答案 1 :(得分:0)

谢谢大家,我使用此代码解决了我的问题

我检查日期是否等于当月的最后一天。

如果格式化(Date.Now," MM / dd / yyyy")= DateSerial(年(Date.Now),月(Date.Now)+ 1,0)那么

//get the last day of the current month

monthdate = DateSerial(Year(Date.Now), Month(Date.Now) + 1, 0) 

否则

//get last day of the previous month

monthdate = DateSerial(Year(Date.Now), Month(Date.Now) + 0, 0)

结束如果

然后我有一个查询,如果已经有一个等于月结的日期,那将检查我的表

如果有

退出子

否则执行将获取/插入结束库存的代码。 :d