0

我有两个组合框,可让用户选择日期和年份。我想要做的是把它翻译成我在访问中的查询,这需要一个 [开始日期] 和一个 [结束日期] 参数。

IE 用户在组合框中选择“May”和“2013”

我的查询是在 [开始日期] 和 [结束日期] 之间设置的,因此我想将组合框中的这个月份和年份选择转换为两个字符串(开始日期和结束日期,然后将它们作为命令参数传递),其中包含 MM/DD/年年,月/日/年。获取两个字符串并获得第一个有效日期和最后一个有效日期的最佳方法是什么。我有:

FirstDayInMonth = DateSerial( _
 Year(Date), Month(Date), 1)

LastDayInMonth = DateSerial( _
 Year(dtmDate), Month(dtmDate) + 1, 0)

但是我需要从字符串切换到日期格式以返回所选月份的第一天/最后一天,仅使用月份(“MAY”)和年份(“2013”​​)?我错过了一些相对简单的东西吗?

4

2 回答 2

4

使“月份”组合框有两列(Column Count属性为2):

 1 | Jan
 2 | Feb
...
12 | Dec

Bound Column组合框的1设置.Value为月份编号,但通过将第一列的宽度设置为零仅显示月份名称(隐藏编号):

Column Widths: 0";0.75"
于 2013-06-26T15:54:30.007 回答
2

那么,您是否从组合框中获得月份和年份(整数或长整数,还不是日期)?
然后试试这个:

Dim m As Long
Dim y As Long
Dim d_from As Date
Dim d_until As Date

m = CLng("01") ' get these two from your comboboxes
y = CLng("2013") 
d_from = DateSerial(y, m, 1)

d_until = DateAdd("m", 1, d_from)
d_until = DateAdd("d", -1, d_until)

当您有第一个日期时,您可以通过添加一个月,然后返回一天来计算第二个(一个月中的最后一天)。

于 2013-06-26T15:57:57.240 回答