【问题标题】:How to display out of list items in a combobox?如何在组合框中显示列表中的项目?
【发布时间】:2018-10-09 01:54:48
【问题描述】:

我有一个tbl_ProjectList,其中包含项目的名称结束日期

  • qry_cboProject 查询此表以仅在 Subform A 的组合框中显示项目,其中 结束日期Subform B 上的选定日期之后,两者都在 Mainform C 上。
  • Subform A 上,宏将 (INSERT INTO SQL) 项目从 Subform B's 前几个月复制到新月份。但是,如果将过期项目复制到新月份,则该记录的组合框字段将为空,即使 Key 存在于后端。

我尝试通过更改 Bound ColumnColumn CountColumn WidthsLimit To List 来使用 Subform A 上的组合框属性,但我只能将过时的项目设置为通过它的Key而不是它的Name来显示。

这个宏的前端推理是员工不必为每个月重复选择相同的项目,并且已经在处理过时项目的员工可能仍然需要花费一些时间来关闭项目。

有人有什么建议吗?提前谢谢!

【问题讨论】:

  • 请退后一步并提供相关细节。主窗体和子窗体的用途是什么? (绑定或未绑定?)组合框的目的是什么?请贴出他们的SQL记录来源?什么是过期是什么意思?使用编辑链接添加此信息,而不是在 cmets 中。
  • 如果组合框列表被过滤,则别名值不能显示在包含从列表中排除的数据的记录中。这是用于连续或数据表表单的级联(依赖)组合框的一个众所周知的方面。您必须根据需要动态修改组合框 RowSource 以过滤/不过滤。仅过滤 NewRecord 行的列表,因此无法选择过时的项目。或者不要复制过时的记录。或者从 RecordSource 表单中过滤它们。

标签: sql ms-access vba


【解决方案1】:

字段在组合框中显示的顺序取决于控制源如何查询信息,即获取名称而不是使用控制源查询在组合框中显示的键,如下所示:

SELECT Key, Name FROM tbl_ProjectList

您需要设置以下属性:

Column Count: 2
Column Width: 0"; 2"
Bound Column: 1

听起来您可能还需要重新查询控制源。这应该会导致所有信息更新。

【讨论】:

    【解决方案2】:

    @Parfait - 很抱歉没有更详细地描述我的问题。一个主窗体上有多个子窗体,允许用户在一个子窗体中选择日期,该日期在第二个子窗体上填充项目,在第三个子窗体上填充职责。

    Jeffrey 的建议让我意识到,对于结转到新月份的项目,应该调整对组合框的基础查询,其中基础 tbl_ProjectUserEntry 中存在外键

    因此,我在查询中添加了WHERE 条件,它使用DLookUp 函数来查看外键是否存在:

    DLookUp("[DateID]","tbl_ProjectUserEntry","[DateID] =" & Forms.frm_UserEntry.tbDateID) IS NOT NULL

    frm_UserEntry是主要形式..

    再次为我对一个复杂问题的简短描述道歉。

    【讨论】:

      猜你喜欢
      • 2015-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-17
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多