我有一个位于文件夹中的Access文件。该文件夹链接到公司的服务器。这意味着可以通过公司中的每台计算机访问Access文件。
我遇到的问题是,虽然我能够从一台计算机登录访问文件,但当我尝试从另一台计算机登录同一文件时,错误"错误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 :(得分: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