访问:基于结束日期的下拉列表
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 |
然后,我希望用户的下一笔交易只能选择 Car2
和 Car3
,因为它们是唯一可用的。
非常感谢
马特
【问题讨论】:
使组合框行源成为仅选择 EndDateOfRent 不为空的 MaterialID 的查询? 嗨 Minty,我已经尝试过了,但是,当 MaterialID 被租用且未归还时,下拉列表中不会显示任何内容... 呃……但这正是你所要求的。你不能既做又不展示一个项目。 是否有物品没有被租用并且没有被归还的情况?可能是被盗或放错地方? 我认为我们误解了您的要求,或者您说得不够清楚,我们无法理解。向我们展示一些示例数据 - 您拥有什么以及您期望的结果是什么。 【参考方案1】:您的要求是在下拉框中显示禁用的行并阻止用户选择它。这在 MS Access 中是不可能的。所有项目/行都是可选的。如果您想阻止用户选择这些“禁用”行之一,您必须
-
根本不显示该行。
显示该行,但当被选中时,执行验证并抛出错误消息,说明选择无效或其他内容。
扩展第 2 点,您可以修改源查询并添加计算字段。 IE。 CanSelect: nz(EndDate,0) < date
'改变这个逻辑
一旦选择了 DropDown 项目,您就可以简单地
if not (canSelect) ThrowErrorMessage; ClearSelection
显然以上只是伪代码,但这应该可以帮助您开始。
【讨论】:
以上是关于访问:基于结束日期的下拉列表的主要内容,如果未能解决你的问题,请参考以下文章