禁止直接输入不在列表项目中的内容
DataColChanging
Tables("任务单").Cols("采购员").AllowDirectType = False
测试发现,当我进入系统后,第一次在单元格内还是能直接输入,输入一次后,才能正式生效。
AllowDirectType
逻辑型,是否允许用户直接输入不在列表项目中的内容。
必须在设置ComboList属性之前,设置AllowDirectType属性,否则无效。
示例
Tables("订单").Cols("客户").AllowDirectType = False
Tables("订单").Cols("客户").Combolist = "CS01|CS02|CS03|CS04"
[此贴子已经被作者于2023/11/3 14:44:52编辑过]
帮助我看了:某一列的内容发生变化前执行,此时新值还没有写入表中,列的内容还是更改前的值。
Tables("任务单").Cols("采购员").AllowDirectType = False 那应该是不能更改的
为什么我刚打开文件后可以输入一次,输入一次后才真正生效。
DataColChangingIf e.DataCol.Name = "采购员" Then '如果是折扣列的内容发生变化。
If e.NewValue > "" Then '如果新值大于0.15。
if ("|" & Tables("任务单").Cols("采购员").Combolist & "|").contains("|" & e.NewValue & "|") = false then
e.cancel=true
end if
End If
End If
Tables("订单").Cols("客户").AllowDirectType = False写在项目事件AfterOpenProject跟写在表事件PrepareEdit,那个更加合理?