如何使用 VBA 在 Access 中创建自己的拆分表单

立即分享:

Access 中的拆分表单非常有用。 不幸的是,当您将它们放在导航表单中时,它们不起作用。 了解如何创建一个 VBA 函数来模拟 Access 的拆分表单功能,并使其甚至在导航表单内也能正常工作。

拆分表单允许您同时拥有记录的两个视图——表单视图和数据表视图。 它允许您概览所有记录,同时为您提供一个选项来逐一查看和编辑它们。

不幸的是,当你将它们放在导航表单中时,拆分表单将不起作用 - 这让我感到困惑。 好事有一个解决方法。 使用 VBA,您可以创建自己的函数来模拟 Access 的拆分表单。 只需按照以下步骤操作。

立即下载

如果你想tar如果您不想尽快使用该功能,那么您可以:

立即下载带有 VBA 代码的示例数据库

否则,如果你想DIY,你可以阅读下面的内容。

使用 VBA 在 Access 中创建自己的拆分表单的步骤

1. 打开拆分表单并将默认视图更新为单一表单。 打开拆分表单并将默认视图更新为单个表单

  1. 打开你的拆分表格。
  2. 在设计视图中,选择窗体。
  3. 转到属性表 (ALT + Enter) > 表单选项卡。
  4. 将默认视图更改为:单一表单。
  5. 关闭表格并保存。

2. 创建表格的副本。 这将用作数据表视图。

  1. 转到导航窗格。
  2. 右键单击您的表单并选择复制。
  3. 右键单击导航窗格中的空白区域并选择粘贴。
  4. 更改窗体名称。 附加“_Datasheet”。

计费示例:

  • 形式:成员
  • 表格副本:Members_Datasheet

3. 打开数据表表单并更新其表单视图属性。

  1. 打开数据表窗体。
  2. 在设计视图中,选择窗体。
  3. 转到“属性表”>“表单”选项卡。
  4. 更新以下属性:
    • 默认视图: 产品规格书
    • 允许数据表查看:
    • 允许表单视图: 没有
  5. 关闭表格并保存。

4. 重新打开主窗体并将数据表窗体添加为子窗体。

  1. 在设计视图中打开主窗体(被复制的窗体)。
  2. 添加子表单。
    • 转到设计菜单。 选择子窗体/子报表。选择子表单
    • 单击表单的详细信息区域。
    • 将出现子窗体向导。子窗体向导

1. 单击“使用现有表格”。

2.选择您的数据表表格。

3.单击下一步。选择“定义我自己的”

4.选择“定义我自己的”。

5.单击完成。

3. 数据表表单现在是主表单的子表单。 将其调整到您想要的大小和位置。

5. 最后添加代码。

  1. 打开 VBA 编辑器 (ALT + F11)。
  2. 选择主窗体并粘贴后面的代码。选择主窗体并粘贴代码
'MAIN FORM
Option Explicit

Private Sub Form_AfterUpdate()
   Me.Members_Datasheet.Requery
End Sub

Private Sub Form_Current()
   If Me.NewRecord Then
     Me.Members_Datasheet.Form.Recordset.AddNew
   Else
     Me.Members_Datasheet.Requery
   End If
End Sub
  1. 复制代码后,替换单词的所有实例 成员_数据表 与您的数据表形式的实际名称。
  2. 完成后,从项目菜单中选择您的数据表表单并复制下面的代码。
'SUBFORM/DATASHEET FORM
Option Explicit

Private Sub Form_AfterUpdate()
   Me.Parent.Form.Requery
End Sub

Private Sub Form_Current()

  Dim pk_field As String, pk_tbox As Control
  Dim primaryKey As String, strSearch As String
 
  Set pk_tbox = Me.Member_ID 'textbox containing primary key *
  pk_field = "Member_ID" 'primary key field name *

  primaryKey = Nz(pk_tbox.Value, 0) 'change value to 0 if null
  pk_field = "[" & pk_field & "]" 'enclose field name with brackets
 
  If primaryKey <> 0 Then 'if not null (or not a new record)
    strSearch = pk_field & "=" & primaryKey
    Me.Parent.Recordset.FindFirst strSearch
  Else
     Me.Parent.Form.Recordset.AddNew
  End If

End Sub
  1. 更新以下变量的值:
  • PK_tbox – 指包含主键的文本框。
  • PK字段 – 引用记录源的主键字段。

它们在评论部分都有一个星号 (*),因此您可以轻松找到它们。

  1. 完成后,保存更改 (CTRL + S) 并关闭 VBA 编辑器。

现在,您可以在导航表单中添加您自己的拆分表单。 试试看!

修复损坏的 Access 数据库 (.accdb)

Access 数据库损坏的原因有很多。 遗憾的是,我们无法控制 most 他们中的。 如果它确实发生在您身上,请记住仍然有办法恢复它。 DataNumen Inc. 已经创建了一个软件来执行 accdb修复。 一探究竟。

作者简介:

Jayme Stack 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 sql恢复 和 excel 恢复软件产品。 欲了解更多信息,请访问 datanumen.com

立即分享:

评论被关闭。