2013-06-26 126 views
0

我有兩個組合框,可讓用戶選擇日期和年份。我想要做的是將這個轉換成我的訪問查詢,這需要[開始日期]和[結束日期]參數。在一個月內獲取第一個和最後一個日期

I.E.用戶在組合框中選擇「五月」和「2013」​​

我的查詢是在[開始日期]和[結束日期]之間設置的,所以我想將這個月份和年份選擇從組合框轉換爲兩個字符串startdate和enddate,然後將它們作爲命令參數傳遞),其中包含MM/DD/YYYY,MM/DD/YYYY。採取兩個字符串並獲得第一個有效日期和最後一個有效日期的最佳方式是什麼?我有:

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

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

但我需要從一個字符串交換機成日期格式取回所選月份的第一個/最後一天,只用了一個月(「MAY」)和年(」 2013" )?我錯過了一些相對簡單的東西?

+0

你的月份組合框中是否包含「Jan」,「Feb」,「Mar」等? – ashareef

回答

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) 

當你第一次約會,你通過添加一個一個月,然後前進了一回天計算第二(在每月最後一天)。

4

製作的「月」組合框中有兩個列(Column Count屬性是2):

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

將組合框的Bound Column1所以其.Value是月份數,但只有一個月顯示從

Column Widths: 0";0.75" 
+1

+1。組合框/列表框控件中的多列*非常有用。只需隱藏索引值/ etc以及其他您不希望用戶看到的東西。 –

+1

我們可以從Combobox.ListIndex中得到這個數字,而不需要額外的列。雖然它是零索引的,所以我們需要添加1。 –

相關問題