在查询中使用 "查找" 和 "多值" 字段

注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容。 本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 可以在本页面底部告诉我们此信息是否对你有帮助吗? 请在此处查看本文的英文版本以便参考。

在 Access 中, 你可以创建一个包含多个值的多值字段 (最多为 100)。 您还可以创建一个查阅字段, 用于显示绑定到另一个数据源中的值的用户友好值。 查询查阅或多值字段时, 有一些特殊的注意事项。 有关详细信息, 请参阅创建或删除多值字段创建或删除查阅字段

本文内容

查看查询中的查阅字段的绑定值

在查询中使用查阅字段的显示值

在查询中使用多值字段

将条件添加到查询中的多值字段

将多个条件添加到查询中的多值字段

对查询中的多值字段进行分组和计数

使用包含多值字段的追加查询

使用包含多值字段的更新查询

使用包含多值字段的 "删除" 查询

查看查询中的查阅字段的绑定值

默认情况下, 查阅字段的显示值会自动显示在查询数据表视图中。 创建查询时, 可以替代此行为, 以便改为显示绑定值。 在此示例中, 假设你想要查看 "查阅" 新英格兰状态名称的总部表中的 "查阅" 字段的绑定值。

查阅字段表
  1. 在 "设计"视图中打开查询。

  2. 在 "显示表" 对话框中, 单击包含 "查阅" 字段的表, 单击 "查阅" 字段中使用的其他数据源, 单击 "添加", 然后单击 "关闭"。 在此示例中, 添加 "总部" 和 " NewEngland " 表。

    应联接两个表。

    查找字段架构

    有关详细信息, 请参阅联接表和查询

  3. 将字段和查阅字段一起拖到查询设计网格中。 在此示例中, 添加 "城市" 和 " NEState " 字段。

  4. 单击 "查阅" 字段, 然后在 "设计" 选项卡上的 "显示/隐藏" 组中, 单击 "属性表"。 在此示例中, 使用 " NEState " 字段。

  5. 在属性表中, 选择 "查阅" 选项卡, 然后在 "显示控件" 属性中选择 "文本框"。

    查询设计中的“显示控件”属性

结果   现在, 当您在数据表视图中查看查询时, 将看到显示值的相应绑定值。

显示绑定值的查询结果

返回页首

在查询中使用查阅字段的显示值

创建查阅字段时, 将在绑定值和显示值之间创建联接。 尽管不能直接在查询中使用显示值, 但可以使用其他数据源中的相应值。 在此示例中, 假设你希望将查询中的 "查阅" 字段的显示值作为条件使用NEState中的 "总部" 表。

  1. 在 "设计"视图中打开查询。

  2. 在 "显示表" 对话框中, 单击包含 "查阅" 字段的表, 按 Shift 单击 "查阅" 字段中使用的其他数据源, 单击 "添加", 然后单击 "关闭"。 在此示例中, 添加 "总部" 和 " NewEngland " 表。

    应联接两个表。 有关详细信息, 请参阅联接表和查询

  3. 将想要使用的字段拖动到查询网格中。 在此示例中, 将 "城市" 从 "总部" 表拖到第一列, NEState从 "总部表" 拖到第二列, 然后StateName "NewEngland" 表中的第三列。

  4. 在查询网格中清除StateName的 "显示" 复选框。

  5. 在查询网格中的 " StateName" 下的 "条件" 行中, 输入 " Vermont"。

    显示查阅字段绑定值的查询网格

    查询条件基于StateName列, 这当然是与显示值NEState相同的值, 但不会显示在数据表视图中。

  6. 在“设计”选项卡上的“结果”组中,单击“运行”。

结果    仅显示包含Vermont的行。

查询的结果

返回页首

在查询中使用多值字段

当您在查询中显示多值字段时, 可以显示完整的多值字段, 其中包含在一行上由逗号分隔的所有值, 或为每个值单独的行平展数据。 例如, 假设有一个 "问题" 表, 其中包含每个问题的 "标题" 字段和 "分配多值" 字段以向人员分配问题。

在一行中显示多值字段中的所有值

  1. 在 "设计"视图中打开查询。

  2. 在 "显示表" 对话框中, 单击包含多值字段的表, 单击 "添加", 然后单击 "关闭"。 在此示例中, 添加 "问题" 表。

  3. 将字段拖动到查询设计网格中。 在此示例中, 拖动 "标题" 字段和 "分配给" 多值字段。

  4. 在“设计”选项卡上的“结果”组中,单击“运行”。

结果    正如您所期望的, 一列显示 "标题" 字段, 第二列显示 "分配给" 多值字段:

多值字段查询 with nonflattened 结果

在一行中显示多值字段的每个值 (平展视图)

  1. 在 "设计"视图中打开查询。

  2. 在 "显示表" 对话框中, 单击包含多值字段的表, 单击 "添加", 然后单击 "关闭"。 在此示例中, 添加 "问题" 表。

  3. 将字段拖动到查询网格中。 在此示例中, 拖动 "标题" 字段和 "分配给" 值多值字段。

    格式 <Fieldname>。值, 则将value属性追加为字符串。值分配给 "分配给" 字段。

  4. 在“设计”选项卡上的“结果”组中,单击“运行”。

结果    数据将被单一化, 以便重复使用 "标题" 字段, 并在相应的行中显示 "分配给多值" 字段中的每个值:

多值字段查询和平展结果

返回页首

将条件添加到查询中的多值字段

在不同的网格列的查询网格中, 相同条件的位置会对查询结果产生很大影响。

添加条件以显示一行中多值字段中的所有值

Access 首先创建一个结果集, 然后添加条件。

  1. 在 "设计"视图中打开查询。

  2. 在 "显示表" 对话框中, 单击包含多值字段的表, 单击 "添加", 然后单击 "关闭"。 在此示例中, 添加 "问题" 表。

  3. 将字段拖动到查询网格中。 在此示例中, 拖动 "标题" 字段、"分配给" 多值字段, 然后分配 "值多值" 字段。

  4. 在查询网格中清除 "分配给" 值的 "显示" 复选框。

  5. 在查询网格中的 "分配给" 下, 在 "条件" 行中输入 "NOT" David Hamilton "。

    带有 "直接查找" 字段的查询设计网格

    查看 SQL 视图非常有用:

    选择 "标题", 从未分配给的问题中分配。值 = "David Hamilton";

  6. 在“设计”选项卡上的“结果”组中,单击“运行”。

结果    未分配到 David Hamilton 的三个问题将显示在默认值中。

使用 <Fieldname> 的多值字段的结果

添加条件, 在一行 (平展视图) 中显示多值字段中的每个值

Access 首先创建一个平展结果集, 然后添加条件。

  1. 在 "设计"视图中打开查询。

  2. 在 "显示表" 对话框中, 单击包含多值字段的表, 单击 "添加", 然后单击 "关闭"。 在此示例中, 添加 "问题" 表。

  3. 将字段拖动到查询网格中。 在此示例中, 拖动 "标题" 字段和 "分配给" 值多值字段。

  4. 在查询网格中的 "分配给" 下, 在 "条件" 行中, 输入 NOT "David Hamilton"。

    带有的查询设计网格。查阅字段的值格式

    查看 SQL 视图非常有用:

    选择问题。标题, 分配给未分配的问题的值。 value = "David Hamilton"

  5. 在“设计”选项卡上的“结果”组中,单击“运行”。

结果    未分配到 David Hamilton 的每个问题都将显示在平展值中。

使用 <Fieldname> 的多值字段的结果。取值

返回页首

将多个条件添加到查询中的多值字段

有时, 你需要在多值字段内搜索多个值的匹配项。 例如, 假设您想要查看 "王凯利" 和 "Lisa 莎莎" 中的哪些问题属于 "分配给" 字段中的值

  1. 在 "设计"视图中打开查询。

  2. 在 "显示表" 对话框中, 单击包含多值字段的表, 单击 "添加", 然后单击 "关闭"。 在此示例中, 添加 "问题" 表。

  3. 将字段拖动到查询网格中。 在此示例中, 拖动 "标题" 字段和 "分配给" 多值字段。

  4. 在查询网格中的 "分配给" 下的 "条件" 行中, 输入 "王凯利" 和 "郭莎莎"。

  5. 在“设计”选项卡上的“结果”组中,单击“运行”。

结果    将显示分配给 "王凯利" 和 "郭莎莎" 的这两个问题。

在多值字段中使用 AND 的查询结果

返回页首

对查询中的多值字段进行分组和计数

若要对存储在多值字段中的值执行计算、分组和排序, 请使用 <Fieldname>。值字段。 有关组查询的详细信息, 请参阅使用查询对数据进行计数

计算分配给每个人的问题数

  1. 在 "设计"视图中打开查询。

  2. 在 "显示表" 对话框中, 单击包含多值字段的表, 单击 "添加", 然后单击 "关闭"。 在此示例中, 添加 "问题" 表。

  3. 将想要使用的字段拖动到查询网格中。 在此示例中, 将 "分配给" 值拖动到第二列的第一列和标题

  4. “设计”选项卡上的“显示/隐藏”组中,单击“总计”

    "汇总" 行显示在查询网格中。 默认情况下, "分组依据" 显示在查询中每个字段下的 "总计" 单元格中。

  5. 在查询网格中的 "标题" 下的 "汇总" 行中, 单击 "计数"。

  6. 在“设计”选项卡上的“结果”组中,单击“运行”。

结果    在平展视图中显示为每个人分配的问题的计数。

对每个人分配的问题进行计数的查询

计算分配给每个问题的人员数

  1. 在 "设计"视图中打开查询。

  2. 在 "显示表" 对话框中, 单击包含多值字段的表, 单击 "添加", 然后单击 "关闭"。 在此示例中, 添加 "问题" 表。

  3. 将想要使用的字段拖动到查询网格中。 在此示例中, 将 "标题" 拖动到第一列, 然后将 "分配给" 拖动到第二列。

  4. “设计”选项卡上的“显示/隐藏”组中,单击“总计”

    "汇总" 行显示在查询网格中。 默认情况下, "分组依据" 显示在查询的 "标题" 字段下的 "总计" 单元格中。 默认情况下, Expression显示在 "分配给" 字段下的 "总计" 单元格中, 因为不能直接在多值字段上执行 Group by 操作, 而只是 <Fieldname>。值字段。

  5. 在查询网格中的 "分配给" 下的 "汇总" 行中, 单击 "计数"。

  6. 在“设计”选项卡上的“结果”组中,单击“运行”。

结果    在平展视图中显示每个问题分配的人员的计数。

显示每个问题的人员计数的查询结果

返回页首

使用包含多值字段的追加查询

可以使用追加查询将单个值插入多值字段中。 例如, 假设您要将 "Tom Michaels" 添加到 "问题" 表中的 "分配给" 多值字段。

注意   这是与多值字段配合使用的唯一追加查询类型。

  1. 在 "设计"视图中打开查询。

  2. 在 "显示表" 对话框中, 添加 "问题" 表, 然后单击 "关闭"。

  3. 在 "设计" 选项卡上, 单击 "追加"。

  4. 在 "追加" 对话框中, 选择 "问题", 然后单击"确定"

  5. 在设计网格的 "追加到" 行中, 选择 "分配给"。 Value

  6. 在设计网格的 "字段" 行中, 输入 "Tom Michaels"。

  7. 若要将追加操作限制为特定问题, 请向设计网格添加一个字段 (如 "标题"), 从 "追加到" 行中删除标题, 然后输入 "问题 3" 等条件。

  8. 在“设计”选项卡上的“结果”组中,单击“运行”。

    Access 可能会要求您确认是否要追加所选行。 单击"是"插入该行, 或单击 "" 取消。

结果   "Tom Michaels" 现已添加到问题3的 "分配给" 字段。

重要事项    不能使用引用包含多值字段的表的追加查询。 例如, 以下查询无效:

INSERT INTO [NewIssues] ( ID, Title, AssignedTo ) SELECT Issues.ID, Issues.Title, Issues.AssignedTo FROM Issues;

返回页首

使用包含多值字段的更新查询

可以使用更新查询将多值字段中的单个值更改为其他值。 在此示例中, 你希望更新 "分配给" 多值字段以将 "王凯利" 替换为 "郭莎莎"。

  1. 在 "设计"视图中打开查询。

  2. 在 "显示表" 对话框中, 添加 "问题" 表, 然后单击 "关闭"。

  3. 在 "设计" 选项卡上, 单击 "更新"。

  4. 将 "分配给" 值拖动到查询网格。

  5. 在 "更新到" 行中, 输入 "郭莎莎"。

  6. 在 "条件" 行中, 输入 "王凯利"。

  7. 在“设计”选项卡上的“结果”组中,单击“运行”。

    Access 可能会要求您确认是否要追加所选行。 单击"是"插入该行, 或单击 "" 取消。

结果    Lisa 莎莎在所有相应问题的 "分配给" 字段中替换 "王凯利"。

返回页首

使用包含多值字段的 "删除" 查询

使用包含多值字段的表时, 可以使用删除查询删除多值字段中包含特定值的记录, 或者从表中所有记录的多值字段中删除特定值。 在以下示例中, 假设您要从 "问题" 表中删除 "David Hamilton"。

重要事项    使用删除查询删除包含数据的多值字段时, 将永久丢失数据, 而不能撤消删除。 因此,在删除任何表字段或其他数据库组件之前,应备份你的数据库。

从所有记录中的多值字段中删除特定值

  1. 在“创建”选项卡上的“查询”组中,单击“查询设计”。

  2. 在 "显示表" 对话框中, 添加 "问题" 表, 然后单击 "关闭"。

  3. 在 "设计"视图中打开查询。

  4. 在 "设计" 选项卡上, 单击 "删除"。

  5. 在 "条件" 行中, 输入 "David Hamilton"。

  6. 在“设计”选项卡上的“结果”组中,单击“运行”。

    Access 可能会要求您确认是否要删除记录。 单击"是"删除记录, 或单击 "" 取消。

结果    对于所有相关问题, 将删除 David Hamilton。

在多值字段中删除包含特定值的记录

  1. 在“创建”选项卡上的“查询”组中,单击“查询设计”。

  2. 在 "显示表" 对话框中, 添加 "问题" 表, 然后单击 "关闭"。

  3. 在 "设计"视图中打开查询。

  4. 在 "设计" 选项卡上, 单击 "删除组"。

  5. 在 "设计" 选项卡上的 "结果" 组中, 单击 "视图" 下的箭头, 然后单击 " SQL 视图"。

  6. 输入以下 SQL 语句:

    DELETE FROM Issues WHERE (((Issues.AssignedTo.Value)="David Hamilton"));

    注意    在这种情况下, 你只能使用 SQL 语句, 而不能使用设计网格。 如果切换到设计网格视图, Access 会在 DELETE 语句后添加一个星号 (*), 您应从 SQL 视图中删除该语句。

  7. 在“设计”选项卡上的“结果”组中,单击“运行”。

    Access 可能会要求您确认是否要删除记录。 单击"是"删除记录, 或单击 "" 取消。

结果    将删除所有分配了 David Hamilton 的问题。

返回页首

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×