Microsoft Access: 如何使用组合框的列属性更新的文本框

针对 Office 2003 的支持已终止

Microsoft 已于 2014 年 4 月 8 日终止了针对 Office 2003 的支持。该更改已影响到您的软件更新和安全选项。 了解这一措施对于您的含义以及如何继续保持受保护状态。

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 209738
中等: 需要基本的宏、 编码和互操作技能。

本文适用于 Microsoft Access 桌面数据库 (.mdb 和.accdb) 和 Microsoft Access 项目 (.adp)。

概要
即使这些字段来自未绑定到该窗体或报表的表,可以在组合框或列表框在表单 ora 报表,显示多个字段。您还可以基于用户从组合框或列表框的选择的新信息更新控件,例如文本框。
更多信息
为"摘要"一节中提到的任务,可以使用以下方法之一:
  • 方法 1: 使用自动查阅窗体中。
  • 方法 2: 使用多列组合框中的属性使用新信息更新文本框控件。
  • 方法 3: 使用多个窗体和报表中的DLookup()函数。

方法 1: 使用在窗体中的自动查阅

您可以设计一个多表查询来自动填充新记录的特定字段值用作查询组合框的行来源。在查询中,或在窗体或报表基于该查询中的联接字段中输入一个值,当 Microsoft Access 查找并填写与该值相关的现有信息。例如,如果您知道客户表和订单表 (如客户 ID 通常是客户标识符) 之间的联接字段中的值,可以输入客户 ID,让 Access 自动输入该客户的信息的其余部分。如果不找到任何匹配的信息,Access 将显示一条错误消息,当焦点离开记录时。自动查阅要工作,必须满足某些条件:

  • 查询必须基于多个表和这些表必须具有一对多的关系
  • 关系的"一"方的联接字段必须具有唯一索引。
  • 联接字段添加到设计网格必须是来自上一个一对多关系的"多"方表。(换句话说,它是那个表的外键)。自动查阅要处理,此字段不能为主键和其索引属性不能过于有 (无重复)。例如,在查询中包含客户和订单表,拖动到设计网格的客户 id 字段从订单表中,不是从客户表的 ID。
  • 从"多"方的联接字段中输入的值必须位于"一"方的联接字段。
当您更新数据:

从关系的"多"方的联接字段的值被添加或更改记录中,Access 将自动查找并显示在关系的"一"端表中的相关的值。

更新关系的"多"方的联接字段,但仅当您启用级联更新定义两个表之间的关系时,您可以更新"一"方的联接字段。无论如何,当您更新数据,访问自动重新计算所有汇总或取决于已更新的数据的查询中的表达式。

方法 2: 使用组合框的列属性

通过分配到文本框中的多列组合框或列表框中的属性,可以在文本框中显示组合框中的当前选定内容中的一列。当从组合框中进行选择时,Microsoft Access 自动更新文本框。若要执行此操作,请按照下列步骤操作:
  1. 打开罗斯文模板的数据库的示例。
  2. 创建窗体或报表基于相应的表或查询。
  3. 添加组合框或列表框的多个字段中检索信息。

    例如,可以为组合框或列表框的行来源属性使用以下多列Select语句要在类别表中显示多个列中的信息:
    选择 [雇员]。[ID],[雇员]。[名字],[雇员]。[职务]从员工顺序由 [员工]。[姓氏]
    对于此示例, ColumnCount属性设置为 3,并将列宽属性设置为合适的组合框或列表框的大小。组合框或列表框大小设置正确 anddefined 返回多个字段后,可以使用属性可以在文本框控件中显示当前所选内容。第一次; 在列表框中选择一个条目否则,它将返回Null

    属性将使用引用参数可以引用多列组合框或列表框中的特定列。使用 Column(0) 来引用第一个列,Column(1) 来引用第二列,依此类推。

    此示例使用 Column(1) 来引用[姓氏],在组合框中的第二列。
  4. 若要显示当前选定项的组合框中的[姓氏]列,创建一个文本框控件。请通过下面的表达式定义该文本框的控件来源框计算的控件的文本
    =[cboControlName].Column(1)
    在哪里 cboControlName 为组合框中的名称。属性将只读的文本框 (计算控件)。

方法 3: 在控件中使用 DLookup

在罗斯文示例数据库中,创建一个未绑定窗体,然后添加名为cboEmployeeLookup和名为txtJobTitleLookup的文字框的组合框。
   In Northwind.mdb in Access 2003 or earlier:   Object: Combo Box   -------------------------------            Name: cboEmployeeLookup   RowSourceType: Table/Query ("Table/View/StoredProc" in Access project)       RowSource: Employees     ColumnCount: 2    ColumnWidths: 1     BoundColumn: 1    DefaultValue: 1   Object: Text Box   -------------------------------            Name: txtLastNameLookup   ControlSource: =DLookup("[LastName]","Employees","[EmployeeID]="                          & [cboEmployeeLookup])   			   In the Northwind Template database in Access 2007 or Access 2010:    Object: Combo Box    -------------------------------             Name: cboEmployeeLookup    RowSourceType: Table/Query ("Table/View/StoredProc" in Access project)        RowSource: Employees      ColumnCount: 3     ColumnWidths: 0";0";1"      BoundColumn: 1     DefaultValue: 1     Object: Text Box     -------------------------------              Name: txtJobTitleLookup     ControlSource: =DLookup("[Job Title]","Employees","[ID]=" & [cboEmployeeLookup])     
请注意,选择员工值与cboEmployeeLookup组合框时, txtJobTitleLookup文本框中填充。

参考

警告:本文已自动翻译

属性

文章 ID:209738 - 上次审阅时间:10/01/2015 15:02:00 - 修订版本: 2.0

Microsoft Access 2000 标准版, Microsoft Access 2002 标准版, Microsoft Office Access 2003, Microsoft Office Access 2007, Microsoft Access 2010, Microsoft Access 2013, Access 2016

  • kbhowto kbinfo kbusage kbmt KB209738 KbMtzh
反馈