2014-02-17 46 views
0

I'm保存這樣一個表中的日期:顯示保存日期

Me!lastchangedate.Caption = Now 

    Set db = CurrentDb 
     Set rs = db.OpenRecordset("background", dbOpenTable) 
     rs.AddNew 
     rs![date] = Me!lastchangedate.Caption 
     rs.Update 
     rs.Close 

後來我想讀這個日期從數據庫中,並顯示在一個標籤:

sqlstrdate = "SELECT date FROM background " _ 
    & " WHERE SAP_ID = '" _ 
    & Me!sapidtxt.Value & "'" 

retvaldate = CurrentDb.OpenRecordset(sqlstrdate) 

直到這裏它的工作,但如果我現在嘗試顯示「retvaldate」作爲MsgBox或在標籤中,我總是得到錯誤消息:錯誤13類型不匹配。

我試圖用它來顯示標籤中保存的日期。

Me!lastchangedate.Caption = (retvaldate) 

是否有更改標籤類型或者我必須改變「retvaldate」的日期類型(這也給了我同樣的錯誤)的選項。

+0

它的意思是「Recordset2」。這是什麼意思? – Julius

+0

但日期正確地保存在我的表格中,我怎樣才能讀出它並在標籤中顯示呢? – Julius

+0

您是否有另一種從表中讀取日期並將其顯示在標籤中的解決方案。 – Julius

回答

0

您正試圖設置'retvaldate'就像打開一個記錄集。下面應該提供正確的結果(順便說一句,爲什麼你使用保留字如'date'作爲字段名稱?)

Dim rs   As Recordset 
Dim sqlstrdate As String 

sqlstrdate = "SELECT date FROM background " _ 
    & " WHERE SAP_ID = '" _ 
    & Me!sapidtxt.Value & "'" 

Set rs = CurrentDb.OpenRecordset(sqlstrdate) 
If Not rs.EOF Then 
    retvaldate = rs.Fields("Date") 
Else 
    retvaldate = "No Records" 
End If 
rs.Close 
Set rs = Nothing 

'Then later... but I hope the variable is in scope (Global, form, subroutine) 
Me!lastchangedate.Caption = retvaldate 
+0

它的工作,謝謝! 'date'是沒有字段名稱,爲了更好的理解,我改變了它,即時我的程序字段名稱有點混亂。 – Julius