以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  DataColChanging  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188987)

--  作者:1234567
--  发布时间:2023/11/3 14:31:00
--  DataColChanging

禁止直接输入不在列表项目中的内容

DataColChanging

Tables("任务单").Cols("采购员").AllowDirectType = False

测试发现,当我进入系统后,第一次在单元格内还是能直接输入,输入一次后,才能正式生效。


--  作者:cd_tdh
--  发布时间:2023/11/3 14:40:00
--  

AllowDirectType

逻辑型,是否允许用户直接输入不在列表项目中的内容。
必须在设置ComboList属性之前,设置AllowDirectType
属性,否则无效。

示例

Tables("订单").Cols("客户").AllowDirectType = False
Tables(
"订单").Cols("客户").Combolist = 
"CS01|CS02|CS03|CS04"

[此贴子已经被作者于2023/11/3 14:44:52编辑过]

--  作者:1234567
--  发布时间:2023/11/3 14:47:00
--  
帮助我看了:某一列的内容发生变化前执行,此时新值还没有写入表中,列的内容还是更改前的值。
Tables("任务单").Cols("采购员").AllowDirectType = False  那应该是不能更改的
为什么我刚打开文件后可以输入一次,输入一次后才真正生效。

--  作者:有点蓝
--  发布时间:2023/11/3 15:25:00
--  
DataColChanging
If 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

--  作者:1234567
--  发布时间:2023/11/3 16:22:00
--  
Tables("订单").Cols("客户").AllowDirectType = False
写在项目事件AfterOpenProject跟写在表事件PrepareEdit,那个更加合理?

--  作者:有点蓝
--  发布时间:2023/11/3 16:31:00
--  
AfterOpenProject