ユーザーがそのフォームに入力した内容を送信するたびに、契約番号を生成するフォームがあります。これは例の番号です:
00001/ABC/DEF/01/2013
シーケンス番号は「00001」で示されます。これは、同じ年にそれを提出した次のユーザーが次の番号「00002」を取得することを意味します。これを処理するために、送信ボタンで次のコードを使用します。
Dim strSQL As String, cNumber As Integer
strSQL = "SELECT TOP 1 Contract_No FROM T_Report WHERE Year=2013 ORDER BY Contract_No DESC "
Set rs = Db.OpenRecordset(strSQL)
If rs.RecordCount > 0 Then
cNumber = Left(rs!Contract_No, 5) + 1
Else
cNumber = 1
End If
ユーザーが別の時間に送信すると、正常に機能します。この問題は、2 人以上のユーザーが同時に生成した場合に発生します。たとえば、userA と userB が一緒にボタンをクリックすると、'00001' と '00001' が返されます。私が望むのは、別のユーザーが「00002」、「00003」などを取得することです。誰でも私を助けてもらえますか?