2015-02-24 55 views
1

我的一位朋友要求我在Access中幫助他解決問題。 他具有存儲表,如姓名,ADRESS在一些信息一的costumers名單,....訪問VBA客戶端上的最新更新

的位置也與選擇「最近更新」

現在事情一欄是我」米試圖找出是如何顯示一個MsgBox witht客戶端名稱時,「上次更新」值是一個多月大

到目前爲止,我的代碼如下所示:

Dim DB As DAO.Database 
Dim RS As DAO.Recordset 
Dim SQL As String 

'SQL = "SELECT * FROM Beheer WHERE " & Me.[Last update] & " >= (" & Date & " - INTERVAL 1 Month)" 
'SQL = "SELECT * FROM Beheer WHERE DateDiff(" & "m" & "," & Me.[Last update] & "," & Date & ") <= 1" 

Set RS = CurrentDb.OpenRecordset(SQL) 
If RS.EOF Then 
    MsgBox "No batch ID found.", vbOKOnly + vbInformation, "Last Batch" 
Else 
    MsgBox "Last batch ID is " & RS![Customer name] & ".", vbOKOnly + vbInformation, "Customer To update" 
End If 
RS.Close 
DB.Close 
Set RS = Nothing 
Set DB = Nothing 

正如你可以看到我評論了兩個SQL查詢導致形式a錯誤我不能通過。

有人可以幫我請求嗎?

問候

+0

小心你如何描述這個問題......你真的是指「如果最後更新大於30天選擇記錄」?根據不同的月份進行選擇可能會導致您在2015年1月31日獲得更新記錄。 – 2015-02-24 13:53:59

+0

沒有任何我想要做的是,它會彈出一個消息框,顯示公司名稱,其中「上次更新」日期超過一個月。 ,實際上聽起來很簡單,但我無法完成它:s – 2015-02-24 15:25:18

+0

首先,你沒有提到你的代碼的位置,所以更難以知道你想要什麼。其次,你是否意識到你的代碼只會顯示FIRST記錄,因爲你永遠不會循環你的記錄集?最後,正如我之前所問,你對一個月的定義是什麼? 30天以上?月<當前月份? – 2015-02-24 16:38:25

回答

0

嘗試這個 -

SQL = "SELECT * FROM Beheer WHERE DateDiff('m',[Last update] , Date()) >= 1" 

解釋: 這將讓你只記錄是一個月過去了數爲equl或gratter比1 ....

的函數DateDiff需要成爲查詢的一部分 - 不是您編寫代碼時的一部分代碼....

你寫了什麼:

Me.[Last update] 

使searh的窗體上的控件的代碼,名稱是「最近更新」

希望我幫你。

+0

介意[解釋你的解決方案](http://stackoverflow.com/help/how-to-answer)有點? – 2015-04-23 19:35:23