我有一个用于数据输入的表单。我们必须返回并向这些记录添加数据。有没有办法拉出按字段“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。
答案 0 :(得分:2)
OpenForm
不包含指定排序顺序的选项。但是,您可以使用其 OpenArgs 选项传递排序信息,然后在表单加载期间应用它。
Private Sub Form_Load()
If Not IsNull(Me.OpenArgs) Then
Me.OrderBy = Me.OpenArgs
Me.OrderByOn = True
End If
End Sub
然后按升序排列名为 id 的字段的 YourForm ...
DoCmd.OpenForm "YourForm", OpenArgs:="id"
包含DESC
降序...
DoCmd.OpenForm "YourForm", OpenArgs:="id DESC"
使用此版本的Form_Load
来解决表单打开的原因,而不进行预期的排序。
Private Sub Form_Load()
MsgBox "Me.OpenArgs: " & Nz(Me.OpenArgs, "Null")
If Not IsNull(Me.OpenArgs) Then
Me.OrderBy = Me.OpenArgs
Me.OrderByOn = True
End If
MsgBox "Me.OrderBy : '" & Me.OrderBy & "'"
MsgBox "Me.OrderByOn: " & Me.OrderByOn
End Sub