Sorting Access VBA OpenForm分组和排序

Sorting Access VBA OpenForm分组和排序,sorting,ms-access,vba,openform,Sorting,Ms Access,Vba,Openform,我有一个用于数据输入的表单。我们必须返回并向这些记录中添加数据。是否有一种方法可以调出按字段“a”分组记录并按字段“B”排序的表单?这将基本上对表格A1-1、A1-2等进行排序,从而使添加数据更容易 现在,我使用DoCmd.OpenForm只显示特定字段中具有特定值的记录。我需要修改一下吗 谢谢你的帮助 [编辑] 我想这是加载按钮点击表单,所以我有 Private Sub btnDataEntry_Click() DoCmd.OpenForm "Data Sheet", acNorma

我有一个用于数据输入的表单。我们必须返回并向这些记录中添加数据。是否有一种方法可以调出按字段“a”分组记录并按字段“B”排序的表单?这将基本上对表格A1-1、A1-2等进行排序,从而使添加数据更容易

现在,我使用DoCmd.OpenForm只显示特定字段中具有特定值的记录。我需要修改一下吗

谢谢你的帮助

[编辑]

我想这是加载按钮点击表单,所以我有

Private Sub btnDataEntry_Click() 
    DoCmd.OpenForm "Data Sheet", acNormal, , , acFormEdit, , OpenArgs:="MapNumber"
End Sub
然后按照建议

Private Sub Form_Load() 
    If Not IsNull(Me.OpenArgs) Then 
        Main.OrderBy = Me.OpenArgs 
        Main.OrderByOn = True 
    End If 
End Sub

这对我不起作用。如果可能的话,我也希望它将所有地图编号分组在一起,然后将所有项目编号升序。因此,可能有10个条目的地图编号为1,条目编号为1-10。

OpenForm
不包括指定排序顺序的选项。但是,您可以使用其OpenArgs选项传入排序信息,然后在表单加载期间应用该信息

Private子表单_Load()
如果不是IsNull(Me.OpenArgs),那么
Me.OrderBy=Me.OpenArgs
Me.OrderByOn=True
如果结束
端接头
然后,要打开按id字段升序排序的表单

DoCmd.OpenForm“YourForm”,OpenArgs:=“id”
包括降序的
DESC

DoCmd.OpenForm“YourForm”,OpenArgs:=“id DESC”
使用此版本的
Form\u Load
来解决为什么表单在未按预期排序的情况下打开的问题

Private子表单_Load()
MsgBox“Me.OpenArgs:&Nz(Me.OpenArgs,“Null”)
如果不是IsNull(Me.OpenArgs),那么
Me.OrderBy=Me.OpenArgs
Me.OrderByOn=True
如果结束
MsgBox“Me.OrderBy:”&Me.OrderBy&“
MsgBox“Me.OrderByOn:&Me.OrderByOn”
端接头

谢谢,我正试图弄明白这一点,但我还没弄明白。我在原来的问题中补充了更多的信息。给我更多的研究!再次感谢.Me.OpenArgs:Null Me.OrderBy:“Me.OrderByOn:false我不明白我之前建议的
OpenForm
命令如何实现这一点……除非保存该
form\u Load
code的表单……那是另一个表单上的子表单吗?所有代码都在form\u Main,另一个表单”数据表上“是一个没有代码的单独表单。哇,我现在知道了。这玩意儿怎么能让我觉得自己像个白痴。非常感谢你!我所说的不工作是指它不“排序”数据。无论我输入什么(按ID字段排序),表单中显示的内容都是相同的:
DoCmd.OpenForm FormName:=“数据表”,View:=acNormal,DataMode:=acFormEdit,OpenArgs:=“MapNumber”
Main.OrderBy
Main.OrderByOn
中的
Main是什么,这是我尝试的结果。Main是带有按钮的from。它已切换回MeI,并在答案中添加了调试版本的
Form\u Load
。请试一试。