2016-12-02 130 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 
相关问题