在一个表单中有多个ComboBox的情况下,我必须对其进行编辑,擦除或替换所显示的任何记录。
我试图以加载的形式添加此属性:
Me!Tipo.LimitToList = True
即使那样,也可以擦除ComboBox中的选定选项。无法解释这一点。如何认真创建一个窗体中的ComboBox,使用户只能选择该窗体中的现有内容而不删除或修改它? 里奥·塞里奥·唐德·埃尔索阿里奥·索洛·普埃德·埃莱吉尔·罗奎·海伊和波拉罗·普埃德?
答案 0 :(得分:1)
我不会说西班牙语,所以我希望我不会错过有关您的问题的重要信息。
您已经发现自己的LimitToList
属性阻止用户选择列表中尚未存在的值。因此,每当用户编辑或删除一个值以使结果值与列表的所有元素都不同时,该选择将不会被接受,并且消息框将通知用户有关此信息。因此,您已经完成的工作是用户不能选择无效的值。
但是,这不会阻止用户实际尝试输入无效值。他仍然可以编辑或删除当前看到的值。您可以通过仅允许使用预定义的键(例如missinglinq指出here
)来完成此操作Private Sub ComboBoxName_KeyDown(键代码为整数,Shift为整数)
选择案例密钥代码
案例vbKeyReturn,vbKeyTab,vbKeyUp,vbKeyDown KeyCode = KeyCode'接受这些键
其他情况 KeyCode = 0'阻止所有其他键结束选择
结束子
答案 1 :(得分:0)
如果只希望组合仅可在新记录上进行编辑,则需要向“当前事件”表格中添加一些代码
Me.cmbYourCombo.Locked = Not Me.NewRecord
这将锁定组合,使其无法编辑除新记录以外的任何内容。