MS Access中如何通过未绑定窗体选项组排序数据表视图子窗体?
MS Access:通过选项组实现子窗体排序
场景说明
我有一个未绑定数据的MS Access主窗体,里面有个名为frSortBy的选项组控件,用来选择字段,对数据表视图的子窗体(控件名Age)进行排序。以下是实现该功能的VBA代码及修正说明:
修正后的可用代码
Private Sub frSortBy_DblClick(Cancel As Integer) On Error GoTo ErrorHandler Select Case frSortBy Case 1 ' 按Age字段升序排序 Me![Age].Form.OrderBy = "Age" Me![Age].Form.OrderByOn = True Case 2 ' 按HT字段升序排序 Me![Age].Form.OrderBy = "HT" Me![Age].Form.OrderByOn = True Case 3 ' 按WT字段升序排序 Me![Age].Form.OrderBy = "WT" Me![Age].Form.OrderByOn = True Case 4 ' 按Salary字段降序排序 Me![Age].Form.OrderBy = "Salary DESC" Me![Age].Form.OrderByOn = True End Select Exit Sub ErrorHandler: MsgBox "错误编号: " & Err.Number & vbCrLf & vbCrLf & Err.Description End Sub
原代码问题修正点
- 对象混淆:原代码仅Case1操作子窗体
Me![Age].Form,其余Case错误操作未绑定的主窗体Me,排序主窗体无意义,统一修正为操作目标子窗体 - 语法错误:原代码中
Me![Age].Form.OrderBy = True是错误写法,启用排序需设置OrderByOn = True - 注释错误:原注释描述(如“按两个字段排序”“按日期降序”)与实际代码逻辑不符,已修正为准确注释
- 错误处理启用:取消注释错误处理代码,运行出错时可直观查看错误信息
内容的提问来源于stack exchange,提问作者FreddyBoy
相关产品推荐
相关产品推荐

