我只是不知道如何去做這件事。如何獲得一個範圍內的月份vb2010
我設計的,使用MS Access作爲其數據庫的程序。我有一個月份和年份的字段(字段數據類型是文本),用戶可以在其中註冊詳細信息。該程序將記錄用戶選擇的月份和年份,例如月份= 9月份,年份= 2011。現在
我的問題是,如何選擇範圍的數據通過月份和年份爲標準用戶查看e.g用戶可能希望查看的數據範圍從(2011年9月至7月2013)。
我找不出如何嘗試。幫助將不勝感激。
我只是不知道如何去做這件事。如何獲得一個範圍內的月份vb2010
我設計的,使用MS Access作爲其數據庫的程序。我有一個月份和年份的字段(字段數據類型是文本),用戶可以在其中註冊詳細信息。該程序將記錄用戶選擇的月份和年份,例如月份= 9月份,年份= 2011。現在
我的問題是,如何選擇範圍的數據通過月份和年份爲標準用戶查看e.g用戶可能希望查看的數據範圍從(2011年9月至7月2013)。
我找不出如何嘗試。幫助將不勝感激。
也許你可以改變你的應用程序邏輯月份和年份存儲爲各自的數字,而不是文本和更改字段的數據類型爲數字。
然後,您可以構建從他們DateTime
對象,例如九月將是9,你可以使用如下代碼:
var startDate = new DateTime(year, month, 1); // get year and month as integers from database, uses the first as the date
var endDate = new DateTime(year, month, 10); // change the date but keeps the month and year the same
var endDate2 = startDate.AddMonths(1); // adds 1 month to the date
或者,你可以嘗試使用日曆控件,以允許用戶選擇兩個日期,而不是從多個字段構建它。取決於你使用的是什麼,這可以通過很多方式實現,例如在ASP.Net或WPF中,你可以使用兩個日曆控件,並且只使用它們的SelectedDate
屬性作爲你的範圍。
範圍從起點到終點。對於起點,您可以自動添加月份的第一個。對於端點而言,它更復雜,因爲沒有修復端點。你可以做什麼如下:
1.9.2011
。爲entdate做同樣的事情。between
。可以假定,一切進入在每個月的第一天。我會使用查詢將信息提取到數據庫。
select * from [tablename] where DateSerial([colYear], [colMonth], 1) between DateSerial([fromYear], [fromMonth], 1) and DateSerial([toYear], [toMonth], 1)
它會與我的工作數據庫中的表結構? – Diamond
我不知道你的表結構,但是如果你用正確的變量改變括號中的字符串,它應該可以工作。 –
在這個問題上有一些方法可以做到這一點:
第一。 過濾日期範圍假設你使用像'07-12-2012'
日期即 2011年9月至7月2013
Where DateColumn > '09-01-2011' and DateColumn < '07-31-2013'
OR
指定日期和一年
Where month(DateColumn)='1' and year(DateColumn)='2016'
注: 有很多方法可以做到這一點。
你可以根據你想要的輸出來操縱你的語句。
使用條件,如年和月。 –
看看http://office.microsoft.com/en-us/access-help/use-a-parameter-to-make-a-query-ask-for-input-HA010341833.aspx –