访问:基于结束日期的下拉列表

Posted

技术标签:

【中文标题】访问:基于结束日期的下拉列表【英文标题】:ACCESS: drop down list based on end date 【发布时间】:2018-11-06 11:21:12 【问题描述】:

我正在尝试根据日期字段更改 Access 表单中的下拉列表。

我有一个事务表: TransacID - MaterialID - StartDateOfRent - EndDateOfRent

我想做的是防止用户能够选择尚未返回的MaterialID。

当然可以,但是我在这个问题上摸不着头脑......

感谢您的帮助

编辑: 我的解释可能不清楚。 这是一些数据:

| MaterialID: | Car1 | Car2 | Car3 |

在我的表单中,用户可以选择这些汽车中的任何一辆进行出租。 让我们说:

| Transac1 | Car1 | StartRental = 20181101 | Not Returned        |
|----------|------|------------------------|---------------------|
| Transac2 | Car2 | StartRental = 20181101 | End Date = 20181106 |

然后,我希望用户的下一笔交易只能选择 Car2Car3,因为它们是唯一可用的。

非常感谢

马特

【问题讨论】:

使组合框行源成为仅选择 EndDateOfRent 不为空的 MaterialID 的查询? 嗨 Minty,我已经尝试过了,但是,当 MaterialID 被租用且未归还时,下拉列表中不会显示任何内容... 呃……但这正是你所要求的。你不能既做又不展示一个项目。 是否有物品没有被租用并且没有被归还的情况?可能是被盗或放错地方? 我认为我们误解了您的要求,或者您说得不够清楚,我们无法理解。向我们展示一些示例数据 - 您拥有什么以及您期望的结果是什么。 【参考方案1】:

您的要求是在下拉框中显示禁用的行并阻止用户选择它。这在 MS Access 中是不可能的。所有项目/行都是可选的。如果您想阻止用户选择这些“禁用”行之一,您必须

    根本不显示该行。 显示该行,但当被选中时,执行验证并抛出错误消息,说明选择无效或其他内容。

扩展第 2 点,您可以修改源查询并添加计算字段。 IE。 CanSelect: nz(EndDate,0) < date '改变这个逻辑

一旦选择了 DropDown 项目,您就可以简单地

if not (canSelect) ThrowErrorMessage; ClearSelection

显然以上只是伪代码,但这应该可以帮助您开始。

【讨论】:

以上是关于访问:基于结束日期的下拉列表的主要内容,如果未能解决你的问题,请参考以下文章

基于其他下拉列表的下拉选择[关闭]

基于多对多关系创建访问下拉列表

基于其他下拉列表的 ajax 和 jQuery 动态下拉列表(来自数据库的数据)

使用日期选择器填充日期下拉列表

html做网页,关于日期下拉列表框的问题

如何直接用java Swing写日期下拉列表框