1

我有一个位于文件夹中的 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

就在那里让我很困惑。因为我从服务器登录到同一个文件,不应该没有错误吗?仅当我在另一台计算机上登录访问文件时才会发生此错误。

有谁知道为什么会发生这种情况以及我该如何解决?

4

1 回答 1

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
于 2016-12-02T07:12:44.957 回答