级联组合/列表框

级联组合/列表框

本教程将指导您创建级联组合/列表框。 那就是当您有多个组合框/列表框时,其中一个选项的选择确定了另一个中的可用选项。

术语

行来源:

从组合框或列表框获取其值的表/查询。 注意:可以使用其他类型的行源,但为简单起见,我们将坚持使用表和查询。

控制源:

以绑定形式,它确定控件代表的字段。 这与行源的不同之处在于,行源确定您的选择,控制源确定信息的存储位置。

列数:

通过此选项,您可以定义希望能够从控件查看和访问的行源中的数据列数。

列宽:

确定表单视图中列的大小。 在多列组合/列表框中,如果您希望继续访问信息,但又不想显示该列,请将宽度设置为零。

绑定列:

对于多列组合/列表框,此选项指定进行选择时存储在基础表中的列。

更新后事件:

在控件或记录中的已更改数据更新后,将发生此事件。

表单模块:

表单模块包含特定于其代表的表单的所有代码。

绑定形式:

绑定表格是链接到表/查询的表格,该表格/查询将存储在表格中输入的信息。 注意:并非总是如此,但这是默认设置。 未绑定的表单是未链接的表单,因此一旦关闭表单,输入到表单的信息将不再可用。 概念

事件驱动的访问性质:

Access中表单中的所有内容都是事件驱动的。 某些事件,例如单击鼠标或按下键,可用于运行用户定义的宏或事件正常功能之外的代码。 您可以使用的事件取决于对象,即表单,文本框,组合框。 这些可以从对象的属性中查看。

访问对象的属性:

对象的属性和功能被组织为层次结构。 以名为Foo的表单上名为Subtotal的文本框的背景色属性为例,该属性属于控件Subtotal,Subtotal属于表单Foo,而Foo属于集合Forms。 要引用该属性,可以使用Forms.Foo.Subtotal.BackColor。 在表单模块中,当您不通过其完整对象路径引用对象时,会做出某些假设。 但是,为清楚起见,我们将不涉及这些假设。 但是,我们将使用Me参考。 关键字Me引用了引发事件的当前形式。 因此,您可以使用Me.Subtotal.BackColor。 假设条件

我们将在本教程中使用一个简单的场景。 您有一个带有两个组合框的未绑定表单。 一个命名为[公司],另一个命名为[雇员名称]。 [Company]将从表TblCompany中获取其值,而[Employee Name]将从TblEmployees中获取其值。 这些表具有以下布局:

 TblCompany 
[ID] – AutoNumber, PK
[CpyName] – Text, Name of the Company  TblEmployees 
[EmpName] – Text, Name of Employee
[ID] – FK, Used to link the employee to the company from which they work.
[EID] – Autonumber, PK
默认情况下,[公司]将具有以下属性:

行源– TblCompany

列数– 2(我们使用2列,因为我们要同时包含ID和CpyName。)

列宽– 0”; 1”(我们将第一列设置为0”,因为用户不需要查看ID。)

绑定列– 1(我们将其绑定到第一列,以便当我们引用[Company]时,它将返回ID而不是CpyName。)

并且[Employee Name]将没有选择,因为我们希望在选择公司之前将其保留为空。

您的需求将决定如何设置组合/列表框和表格。

程序

我们想要的是改变

每当用户将选择更改为[公司]时,[员工名称]的行来源

因此,在[公司]的更新后事件属性中,您需要将其更改为[事件过程]。

然后,在Visual Basic编辑器的窗体Foo的模块中,您将具有以下代码:

Private Sub Company_AfterUpdate()
  With Me![Employee Name]
    If IsNull(Me!Company) Then
      .RowSource = ""
    Else
      .RowSource = "SELECT [EmpName] " & _
                   "FROM TblEmployees " &  _
                   "WHERE [ID]=" & Me!Company
    End If
    Call .Requery
  End With
End Sub
因此,假设用户选择ID为6的CompanyXYZ,则该用户将在[公司]中看到CompanyXYZ,并且[员工姓名]的列表中将填充TblEmployee记录的ID值为6的值。

From: https://bytes.com/topic/access/insights/605958-cascading-combo-list-boxes

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值