在 Access 桌面数据库中的窗体上输入数据时,从列表中选择值比记住要键入的值更快、更轻松。 选择列表还可以帮助确保在字段中输入的值是正确的。 列表控件可以连接到现有数据,也可以显示在创建该控件时输入的固定值。 请继续阅读,了解可用于 Access 窗体的列表控件,以及如何创建和自定义它们。
您要做什么?
了解列表框控件的类型
Access 为窗体提供了两种列表控件:列表框和组合框。
列表框 列表框控件显示值或选项的列表。 列表框包含数据行,并且通常设定了大小以便始终都可以看到几行。 数据行可以有一列或多列,这些列可以显示或不显示标题。 如果列表中包含的行数超过控件中可以显示的行数,则 Access 将在控件中显示一个滚动条。 用户只能选择列表框中提供的选项,而不能在列表框中键入值。
组合框 组合框控件提供了一种更紧凑的方式来显示选项列表;列表处于隐藏状态,直到单击下拉箭头。 组合框还使您能够输入不在列表中的值。 这样,组合框控件就合并了文本框和列表框的功能。
1. 单击箭头以显示下拉列表。
2. 单击下拉列表中的某个选项。
列表框和组合框可以是绑定或未绑定控件。 这些控件可以查阅您自己在固定列表中键入的值,也可以查阅表或查询中的值。 若要创建在表或查询中查找值的绑定列表框或组合框,请确保窗体基于包含外键字段或查阅字段的记录源。 这样就可以创建将列表框或组合框中的数据链接到窗体上的数据所需的关系。
使用向导创建列表框或组合框
在导航窗格中右键单击窗体,然后单击“设计视图”。
注意
此过程假设窗体已绑定到表或查询。 如果未绑定窗体,则某些步骤将不适用。 要确定是否将窗体绑定到表或查询,请按 F4 以显示属性表。 在属性表的“数据”选项卡上,“记录源”属性框将显示窗体绑定到的表或查询。
在“ 窗体设计 ”选项卡上的“ 控件 ”组中,确保已选择 “使用控件向导 ”。
单击 列表框
工具或 组合框
工具。在窗体上,单击要放置列表框或组合框的位置。
- 根据所做的选择,将启动列表框向导或组合框向导。
在向导询问希望如何获取控件的值时,请执行下列操作之一:
- 如果希望显示记录源中的当前数据,请单击“使用列表框/组合框查阅表或查询中的值”。
- 如果希望显示将很少更改的固定值列表,请单击“自行键入所需的值”。
- 如果希望控件执行查找操作而非用作数据输入工具,请单击“在基于列表框/组合框中选定的值而创建的窗体上查找记录”。 此操作将创建一个未绑定控件,该控件带有基于用户输入的值执行查找操作的嵌入宏。
按照说明进行操作以指定值的显示方式。
如果在向导的第一页上选择了前两个选项之一,则当您选择一个值时向导会询问您希望 Access 执行何种操作。 请执行下列操作之一:
- 若要创建未绑定的控件,请单击“ 记住该值以供以后使用”。 这意味着 Access 将保留选定的值,直到用户进行更改或关闭窗体,但不会将该值写入表中。
- 若要创建绑定控件,请单击“ 在此字段中存储该值”,然后选择要将控件绑定到的字段。
单击“下一步”,然后为控件键入一个标签。 此标签将显示在控件的旁边。
单击“完成”。
通过向窗体添加查阅字段来创建列表框或组合框
您可以通过向窗体添加查阅字段来创建绑定列表框或组合框。
在表中创建查阅字段。 所创建的查阅字段可以是多值字段,也可以只包含一个值。
有关创建多值查阅字段的详细信息,请参阅 创建或删除多值字段一文。执行下列操作之一:
创建一个基于包括查阅字段的记录源的新窗体。 例如,在导航窗格中,选择一个包含查阅字段的表或查询,然后在“创建”选项卡上的“窗体”组中,单击“窗体”。
Access 会自动为查阅字段创建组合框。向窗体添加列表框或组合框:
在设计视图中,打开一个基于包括查阅字段的记录源的窗体。
如果未显示“字段列表”窗格,请按 Alt+F8 以显示它。
双击查阅字段,或者将查阅字段从“字段列表”窗格拖动到窗体上。 Access 会自动创建绑定到该字段的组合框。
提示
若要将组合框更改为列表框(或相反),请右键单击该控件,在快捷菜单上单击“更改为”,然后单击所需的控件类型。
不使用向导创建列表框或组合框
在不使用向导创建列表框或组合框时,由您自己设置许多控件属性。 如果希望了解有关特定属性的详细信息,请单击相应的属性框并按 F1。
在设计视图中打开窗体。
在“ 窗体设计 ”选项卡上的“ 控件 ”组中,确保未选择 “使用控件向导 ”。
单击 列表框
工具或 组合框
工具。在窗体内单击一次以创建默认大小的控件,也可以单击并拖动光标直到控件达到所需的大小。
选中控件后,按 F4 打开其属性表。
按照下表中的说明来设置“行来源类型”和“行来源”属性。
执行的操作... 将“行来源类型”属性设置为... 按照以下说明设置“行来源”属性: 显示表或查询中的值,或者显示 SQL 语句的结果 表/查询 在下拉列表中,选择包含希望显示在列表框或组合框中的值的表或查询。
- 或 -
键入 SQL 语句。
- 或 -
在属性表的“ 数据 ”选项卡上,单击“
打开查询生成器。 有关生成查询的详细信息,请参阅 创建简单的选择查询一文。显示固定的值列表 值列表 键入用分号分隔的固定值列表 (;) 。 例如,North;South;East;West
- 或 -
在属性表的“ 数据 ”选项卡上,单击“
打开 “编辑列表项 ”对话框,然后在单独的行上键入项目。显示表或查询中的字段列表 字段列表 在下拉列表中,选择包含希望显示在列表框或组合框中的字段名称的表或查询。 如果您希望在控件中显示多列,请单击“列数”属性框并键入所需的列数。 设置“列宽”属性以调整列的宽度。 有关每个属性的详细信息,请将光标放在属性框中,然后按 F1。
如果您希望 Access 存储选定值,请单击“控件来源”属性框并选择要将列表框或组合框绑定到的字段。
自定义列表框或组合框
在设计视图中打开窗体时,请确保选择了列表框或组合框,然后按 F4 打开控件的属性表。 然后执行下列操作之一:
更改列表框或组合框中的排序顺序 如果使用向导创建列表框或组合框,Access 会自动按第一个可见列对构成列表的行进行排序。 如果要指定其他排序次序,或者如果已将控件的行来源属性设置为保存的查询,请使用以下步骤:
- 单击“数据”选项卡,然后单击“控件来源”属性框。
- 在属性表的“ 数据 ”选项卡上,单击“
打开查询生成器。 - 在要排序的列的“排序”行中,指定所需的排序次序。
绑定列表框或组合框中的列
在列表框或组合框的“绑定列”属性框中,指定与列表框或组合框中的列位置相对应的数字。 例如,键入 1 可将列表框或组合框中的第一列绑定到“控件来源”属性中指定的基础字段。 在计算列数时,包括隐藏的列。
如果将“绑定列”属性设置为 0,则 Access 会保存列表索引,而不是一列中的值。 如果要存储数字序列而不是列表值,则此设置非常有用。在窗体上的列表框或组合框中隐藏列
在“列宽”属性框中,为要隐藏的列键入 0。
例如,假定有一个绑定了两列的组合框,其中“供应商 ID”列的宽度为 1.3 厘米,“供应商名称”列的宽度为 5.1 厘米。 “供应商 ID”列是列表中的第一列,因此“列宽”属性设置为“1.3 cm;5.1cm”。 若要隐藏“供应商 ID”列,请将“列宽”属性设置为“0 cm;5.1cm”。 即使“供应商 ID”列已隐藏,也仍然可以是绑定列。注意
在组合框中,当列表未显示时,第一个可见的列显示在组合框的文本框部分中。 例如,由于上一个示例中隐藏了“供应商 ID”列,因此将显示“供应商名称”列。 如果未隐藏“供应商 ID”列,则会显示该列而非“供应商名称”列。
向窗体上的组合框中添加列标题
- 在“列标题”属性框中,单击“是”以显示列标题。 仅当列表打开时,组合框中的标题才会显示。
如果组合框或列表框是基于记录源的,则 Access 将使用记录源中的字段名称作为列标题。 如果组合框或列表框是基于固定值列表的,则 Access 将使用值列表(“行来源”属性)中数据的前 n 个项目作为列标题,其中 n 等于在“列数”属性中设置的数字。
- 在“列标题”属性框中,单击“是”以显示列标题。 仅当列表打开时,组合框中的标题才会显示。
关闭窗体上组合框的“键入时填充”功能
- 在“自动展开”属性框中,单击“否”。
当“自动展开”属性设置为“否”时,您必须从列表中选择一个值或键入整个值。
- 在“自动展开”属性框中,单击“否”。
设置窗体上组合框的列表框部分的宽度
- 在“列表宽度”属性框中,输入所需的宽度,该宽度使用当前的度量单位(在 Windows“控制面板”中设置)。 若要使用非默认值的度量单位,请包括一个度量指示器。 例如,输入 2 厘米。请确保为滚动条留出足够的空间。
组合框的列表框部分可以比文本框部分宽,但不能比文本框部分窄。 默认设置(“自动”)使列表框宽度与组合框的文本框部分的宽度相同。
- 在“列表宽度”属性框中,输入所需的宽度,该宽度使用当前的度量单位(在 Windows“控制面板”中设置)。 若要使用非默认值的度量单位,请包括一个度量指示器。 例如,输入 2 厘米。请确保为滚动条留出足够的空间。
设置在窗体上组合框中显示的最大行数
- 在“列表行数”属性框中,输入一个数字。
如果实际行数超过“列表行数”属性中指定的数量,则会在组合框中显示一个垂直滚动条。
- 在“列表行数”属性框中,输入一个数字。
将组合框条目限制为窗体上组合框的列表部分中的项目
在“限于列表”属性框中,单击“是”。
注意
- 如果在组合框中显示的第一列不是绑定列,那么,即使将“限于列表”属性设置为“否”,Access 也会将条目限制在列表范围内。
- 在“限于列表”属性设置为“否”的情况下,当输入不在列表中的条目时,如果组合框已绑定,则该条目将存储在基础字段中而不会添加到列表中。 若要向列表中添加新条目,请使用“不在列表中”属性和“不在列表中”事件。