首页 > 解决方案 > 如何获得“记录集”表格的最大值?

问题描述

表单结构:
-frm_00_00_MainForm;
- - frm_02_02_Groups_Tbl;
- - frm_reg_GroupsStud_Stud_IdGroup_tbl。
  表单数据源 ([frm_reg_GroupsStud_Stud_IdGroup_tbl]) - 请求。
 

SELECT reg_GroupsStud_Stud. *, Reg_GroupsStud_Stud.id_group
FROM reg_GroupsStud_Stud
WHERE (((reg_GroupsStud_Stud.id_group) = [Forms]! [Frm_00_00_MainForm] [[id_group_frm]));

 
我需要获取 [id_stud] 字段的最大值。
这样代码不会处理请求的所有行,而只处理那些我认为可以加快代码速度的表单。
为此,我创建了一个“记录集”表单。
  为此,我尝试使用以下代码:

    Private Sub btnMaxValue_Click()
            Dim rst As DAO.Recordset
            Dim studMax As Integer

            Set rst = Me.[frm_reg_GroupsStud_Stud_IdGroup_tbl].Recordset
             studMax = rst.???

End Sub

但我不明白如何获得 [id_stud] 字段的最大值。

问题。
如何获得“记录集”表格的最大值?

在此处输入图像描述

标签: ms-accessvba

解决方案


您可以尝试对记录集进行排序,然后取最后一个值。此代码从子表单运行。

Private Function GetMax() As Long
Dim rst As DAO.Recordset
Dim studMax As Long

    Set rst = Me.RecordsetClone

    rst.Sort = "Id_stud"

    rst.MoveLast

    studMax = rst("Id_stud")

    GetMax = studMax

    rst.Close

End Function

您需要添加错误处理和代码来检查记录集中是否有可用的记录。您可以GetMax()从子表单中将函数的值分配给任何控件或 VBA 逻辑。


推荐阅读