2016-12-02 23 views
1

フォルダにある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

申し訳ありませんが、私はすでに試してみましたが、私の問題はかなり奇妙なものだと私は考えています。私は自分の問題をよりよく記述するのに役立つなら、私の質問を編集しました。 @KenWhite – Hamizan

+0

あなたの編集は、20個の既存の回答を使用して解決策を試してみる努力を示すものではありません。 –

答えて

0

レコードがないかチェックし、変数を使用する必要があります。また、レコードセットのコールは1つだけが必要とされている

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