Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 如何检索日期字段在下一年内的所有记录的计数,并将其存储在变量中?_Date_Ms Access_Vba_Ms Access 2016 - Fatal编程技术网

Date 如何检索日期字段在下一年内的所有记录的计数,并将其存储在变量中?

Date 如何检索日期字段在下一年内的所有记录的计数,并将其存储在变量中?,date,ms-access,vba,ms-access-2016,Date,Ms Access,Vba,Ms Access 2016,我对MS Access相当陌生,但对数据库有相当的了解,对SQL有一定的了解 我正在Access中创建一个数据库。在用户将首先看到的主窗体上,我需要显示案例表中所有记录的计数,其模拟日期在下一年内 我的目标是创建一个描述信息的标签,标签下面有一个按钮。该按钮将打开所有记录的报告这部分工作正常,我希望该按钮的标题显示符合条件的记录总数 我能想到的唯一方法是检索计数并将其存储到变量中。从那里,我应该能够将标题设置为变量值 我见过几种检索计数并将其存储在变量中的方法,但我发现的所有方法都只存储了每条记

我对MS Access相当陌生,但对数据库有相当的了解,对SQL有一定的了解

我正在Access中创建一个数据库。在用户将首先看到的主窗体上,我需要显示案例表中所有记录的计数,其模拟日期在下一年内

我的目标是创建一个描述信息的标签,标签下面有一个按钮。该按钮将打开所有记录的报告这部分工作正常,我希望该按钮的标题显示符合条件的记录总数

我能想到的唯一方法是检索计数并将其存储到变量中。从那里,我应该能够将标题设置为变量值

我见过几种检索计数并将其存储在变量中的方法,但我发现的所有方法都只存储了每条记录的计数,而没有过滤日期范围

这是我能想到的最好的方法,但它不起作用:

Private Sub Form_Load()

    Dim oneYearFromToday As TempVars
    SET TempVars!oneYearFromToday = (SELECT COUNT(StatuteOfLimitation) FROM Case 
    WHERE StatuteOfLimitation <= DateAdd("yyyy", 1, Date());

End Sub 

我可能不会使用tempvar来存储变量。你可以用刀试试下面的方法

Private sub Form_Load()
dim rst         as dao.recordset
dim strSQL      as string

'Creates query string
strsql = "SELECT Count(StatueOfLimitation) as RecordCount " & _
         "FROM Case " & _
         "WHERE (((StatueOfLimitation) <= DateAdd('yyyy',1,date())));"

'Opens the query string into a recordset
set rst = currentdb.openrecordset(strsql)

'Change Labelnamehere isnto the name of the label control on your form
'Change what ever saying you want here to something you want the label to display
me.labelnamehere.caption = "What ever saying you want here " & rst![RecordCount] 'Don't need a variable storage is you can use the result here

rst.close 'closes recordset
set rst = nothing 'Clears memory

EndCode: 'Ensures clean up is successful
If not rst is nothing then
     rst.close
     set rst = nothing
end if
end sub
如果这对您不起作用,请让我知道,我会做更多的挖掘。

DCount提供了一种简单的方法,用于检索日期字段在下一年内的所有记录的计数

暗计数等于长
lngCount=DCount*,Case,[statuteoflimition]我无法对HansUp的答案发表评论,但要在VBA中更改标签标题,需要在“设计”视图中打开表单。这不是我通常做的事情,我个人的偏好是使用一个标签不变的未绑定文本框,但我在一个数据库中完成了这项工作,以更新上次发送电子邮件的时间/日期和用户

代码如下所示:

    DoCmd.OpenForm "yourformname", acDesign, , , , acHidden
    Forms![yourformname]![yourlabelname].Caption = "There are " & TempVars!onYearFromToday & " cases to view."
    DoCmd.Close acForm, "yourformname", acSaveYes
    DoCmd.OpenForm "yourformname", acNormal

使用按钮显示信息是个坏主意。这不是按钮的用途

使用文本框并设置其控制源:


它将自动填充,并且按钮可随时自由打开报告。

解释什么不起作用。TempVars的价值是什么!一年后的今天?我得到编译错误:预期:表达式。临时工!oneYearFromToday目前没有值,但目标是让它存储下一年到期的记录数。我不确定Robert是否要更改标签或命令按钮的标题。但是,无论哪种方式,表单都不必在设计视图中才能执行此操作。我不经常这样更改标签,但在使用[label]时。Caption=[new text]关闭并重新打开表单时,不会保存更改。这就是我在设计模式下打开表单并进行更改的原因。
=DCount("*","[Case]","[StatuteOfLimitation]<=DateAdd("yyyy",1,Date()))