2016-12-02 62 views
1

我有一個Access文件位於一個文件夾中。該文件夾鏈接到公司的服務器。這意味着可以通過公司內的每臺計算機訪問Access文件。錯誤3021「沒有當前記錄」

我遇到的問題是,儘管我能夠從一臺計算機登錄訪問文件,但當我嘗試從另一臺計算機登錄到同一文件時,出現錯誤「錯誤3021,無當前記錄」出現。

這是我的代碼。

'Daily Material Record Code 
sql = "select max(Date_Recorded) from Daily_Material" 
Set rst = CurrentDb.OpenRecordset(sql) 

If (rst.EOF Or IsNull(rst.Fields(0))) Then 
     lastdate = "01/01/1990" 
     LastYear = 1990 
     LastID = 0 
Else 
     maxlastdate = rst.Fields(0) 
     lastdate = DateValue(rst.Fields(0)) 
     lasttime = TimeValue(rst.Fields(0)) 
     LastYear = Year(rst.Fields(0)) 
     'LastID = Val(Mid(rst!ID, 6)) 
     sql = "select ID from Daily_Material where Date_Recorded = #" & maxlastdate & "# " 
     Set rst = CurrentDb.OpenRecordset(sql) 
     LastID = CStr(Val(Mid(rst.Fields(0), 6))) <---- This is where the error happens 

End If 

那就在那裏讓我困惑。自從我登錄到服務器的同一個文件後,不應該出現錯誤嗎?只有當我登錄到另一臺計算機的訪問文件時,纔會出現此錯誤。

有誰知道爲什麼會發生這種情況,我該如何解決這個問題?

+0

你經過這裏就同樣的錯誤其他職位讀,看看他們是否幫助?搜索「訪問錯誤3021」。 –

+0

對不起,但我已經嘗試過,我相信我的問題是相當bizzare,這是我第一次遇到這樣的事情。如果有助於更好地描述我的問題,我編輯了我的問題。 @KenWhite – Hamizan

+0

您的編輯並未表明任何努力使用二十多種現有答案中的任何一種來嘗試尋找解決方案。 –

回答

0

你必須檢查沒有找到記錄,並使用你的變量。

另外,需要記錄的只有一個呼叫:

sql = "select top 1 ID, Date_Recorded from Daily_Material order by Date_Recorded desc" 
Set rst = CurrentDb.OpenRecordset(sql) 

lastdate = #01/01/1990# 
LastYear = 1990 
LastID = 0 

If rst.RecordCount > 0 Then 
    If Not IsNull(rst.Fields(1).Value) Then 
     maxlastdate = rst.Fields(1).Value 
     lastdate = DateValue(maxlastdate) 
     lasttime = TimeValue(maxlastdate) 
     LastYear = Year(maxlastdate) 
     LastID = CStr(Val(Mid(rst.Fields(0).Value, 6))) 
    End If 
End If 
rst.Close 
相關問題