0

我有一个需求,要构建一个表单,可以用来提交两种类型的请求,但是每种类型必须收集的数据略有不同。也就是说,我有常规订单和特殊要求,它们使用相同的表格完成。
目前,表单包含“库存项目”或“特殊请求”的下拉列表,如果选择了库存项目,则另一个字段“项目名称”(这是一个控制列表)用于选择要获取的库存项目重新排序。控制清单对于最大限度地减少定期库存物品的拼写变化非常重要(以便于报告)。另一方面,特殊请求必须由经理批准,必须与来自另一个表单的原始请求 ID 相关联,并且无法预测 ItemName,因此 ItemName 字段必须成为自由文本字段。因此,流程如下:如果选择了“特殊请求”,则需要从控制列表中清除 ItemName 字段以允许自由输入,需要出现一个带有“经理批准?”标签的复选框。最后必须出现一个用于输入相关特殊请求 ID 的字段,这可能也将被控制。基本上,我需要能够控制表单的流程,具体取决于所做的选择。

这是我所做的:我进入表单的设计视图,突出显示字段 ItemName,并将其从组合框更改为文本框,确认我可以在两种格式之间切换。然后我从“格式”选项卡中选择了条件格式,但是,可用选项不允许我评估另一个我没有 VBA 编程经验的字段的内容...可以在没有 VBA 代码的情况下完成吗?

4

1 回答 1

0

好的,这里有一点帮助您入门。在您的特定情况下,您不需要根据请求类型在组合框和文本框之间切换。名称“组合框”是指它是文本框和下拉列表的组合。

如果.LimitToListCombo Box 的属性是,No那么用户可以从列表中选择一个项目,或者他们可以键入其他值。如果.LimitToList是,Yes那么他们必须从列表中选择一个项目。

因此,您的表单需要做的就是.LimitToList根据“请求类型”组合框的当前值来切换“项目”组合框的属性。After Update这可以通过“请求类型”组合框的事件处理程序中的一行 VBA 代码来完成:

Option Explicit

Private Sub cbxRequestType_AfterUpdate()
    Me.cbxItem.LimitToList = (Me.cbxRequestType.Value = "Stock Item")
End Sub

您可以想象,相同的事件处理程序(对于名为 的组合框cbxRequestType)可用于通过切换.Visible属性来显示/隐藏表单上的其他控件(例如,“Manager Approved”的复选框)。

于 2013-11-08T12:39:43.490 回答