基于首字母的最大值(MS 访问表)

Maximum value based on initials (MS access forms)

我正在尝试创建一个表单,其中 ID 将根据首字母给出最大数字。以下是 table:

中的记录示例
Employee ID |   Employee Name   |   Designation 
------------+-------------------+--------------
CL-100      |   Akram waziullah |   Cleaner
GU-100      |   Shopno Lal      |   Guard       
LG-100      |   Karim Lalon     |   L&G Serviceman  
GU-101      |   Lal Miah        |   Guard   

我想创建一个表格,系统可以根据姓名首字母自动生成 ID。例如,如果 i select guard 作为名称,ID 将是 GU-102,如果 i select cleaner,它将是 CL-101,如果 i select Electrician,它将是EL-100(因为以前没有电工记录)。我能够生成名称的前两个字母,但我不知道如何根据首字母提取最大值。需要帮助...

在窗体的相关控件中可以使用下面的代码。

DMAX("CLng(Right([Employee ID],(LEN([Employee ID])-3))","[tblEmployees]","[Designation]='" & Me.Designation & "'")+1

或者您可以将它添加到表单的更新事件之前

Private Sub Form_BeforeUpdate(Cancel As Integer)
    me.EmployeeID = DMAX("CLng(Right([Employee ID],(LEN([Employee ID])-3))","[tblEmployees]","[Designation]='" & Me.Designation & "'")+1
End Sub