【问题标题】:Access VBA OpenForm Grouping and Sorting访问 VBA OpenForm 分组和排序
【发布时间】:2013-07-17 12:55:13
【问题描述】:

我有一个用于数据输入的表格。我们必须回过头来为这些记录添加数据。有没有办法拉出按字段“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。

【问题讨论】:

  • 不工作是指它不会对数据进行“排序”。无论我输入什么,表单中显示的内容都是一样的(按ID字段排序)
  • 试试这个:DoCmd.OpenForm FormName:="Data Sheet", View:=acNormal, DataMode:=acFormEdit, OpenArgs:="MapNumber"
  • MainMain.OrderByMain.OrderByOn 中是什么?
  • 那是我尝试的东西。 Main 是上面有按钮的 from。已切换回我
  • 我在答案中添加了Form_Load 的调试版本。请尝试一下。

标签: sorting ms-access vba openform


【解决方案1】:

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

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

然后打开YourForm,按名为id的字段升序排序...

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

【讨论】:

  • 谢谢,我正在努力理解这一点,但我还没有完全做到。我在原始问题中添加了更多信息。给我更多的研究!再次感谢。
  • Me.OpenArgs:Null Me.OrderBy: " Me.OrderByOn:False
  • 我不明白我之前建议的OpenForm 命令怎么可能……除非你保存Form_Load 代码的表单是另一个表单上的子表单?
  • 所有代码都在Form_Main上,另一个表单“数据表”是一个单独的表单,没有代码。
  • 哇,我现在明白了。令人惊讶的是,这些东西如何让我觉得自己像个白痴。非常感谢!
猜你喜欢
  • 2022-01-28
  • 1970-01-01
  • 1970-01-01
  • 2018-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-26
  • 2016-12-11
相关资源
最近更新 更多