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

时间:2019-02-14 17:08:12

标签: vba ms-access access-vba

表单结构:
-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]字段的最大值。
这样一来,代码不会处理请求的所有行,而只会处理形式上符合要求的行,这可以加快代码的速度。
为此,我创建了一个“ Recordset”表单。
为此,我尝试使用以下代码:

    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]字段的最大值。

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

enter image description here

1 个答案:

答案 0 :(得分:1)

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

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逻辑。