访问表单:修复组合框中的选项

时间:2018-11-29 10:49:40

标签: vba ms-access

在一个表单中有多个ComboBox的情况下,我必须对其进行编辑,擦除或替换所显示的任何记录。

我试图以加载的形式添加此属性:

Me!Tipo.LimitToList = True

即使那样,也可以擦除ComboBox中的选定选项。无法解释这一点。如何认真创建一个窗体中的ComboBox,使用户只能选择该窗体中的现有内容而不删除或修改它? 里奥·塞里奥·唐德·埃尔索阿里奥·索洛·普埃德·埃莱吉尔·罗奎·海伊和波拉罗·普埃德?

2 个答案:

答案 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

这将锁定组合,使其无法编辑除新记录以外的任何内容。