以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=137686) |
-- 作者:tcseintist -- 发布时间:2019/7/12 16:41:00 -- [求助] 我已经给某列设置了自定义列表项目,如图 ↓ 现在的情况是,录入员可以3种方式编辑数据: 1、手动输入、 2、也可以在列表上选择、 3、也可以复制黏贴的数据, 但是,除了第二种直接在列表上选择的方式,其他两种方式都可能存在数据和列表项目不一致的风险,我想不限制他们手动输入,也允许复制黏贴,但是会有一个验证过程,只有和列表项目中存在的数据一致,才能保留 |
-- 作者:有点蓝 -- 发布时间:2019/7/12 16:59:00 -- 参考:http://www.foxtable.com/webhelp/topics/0053.htm |
-- 作者:tcseintist -- 发布时间:2019/7/12 17:16:00 -- 这个我已经试过,有两个问题 1、设置禁止手动编辑,只是不能手动编辑,但是可以复制黏贴内容进去的。 2、我是想允许他手动编辑或复制粘帖的,只是做个验证不是列表内容不保留
|
-- 作者:有点蓝 -- 发布时间:2019/7/12 17:33:00 -- 组合框Validating事件 Dim str() As String = e.Sender.ComboList.Split("|") If Array.IndexOf(str,e.Sender.Text) < 0 Then e.Cancel = True e.Sender.Error = "不在列表中" Else e.Sender.Error = "" End If |
-- 作者:tcseintist -- 发布时间:2019/7/15 10:14:00 -- 你好,我的是表格。。。不是窗体啊,表格属性里面找不到这个事件咯~~ |
-- 作者:tcseintist -- 发布时间:2019/7/15 10:15:00 -- 我想允许用户手动编辑是因为想用户使用字典功能、同时有时候项目过多手动输入反而比较快,但是输入的必须要验证和列表已有的项目一致的,不一致的话该单元格不会编辑成功的返回一个空值。 [此贴子已经被作者于2019/7/15 10:18:45编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/7/15 10:39:00 -- 表格ValidateEdit事件 If e.Col.Name = "第二列" AndAlso e.Text > "" Dim str() As String = e.Col.ComboList.Split("|") If Array.IndexOf(str,e.Text) < 0 Then e.Cancel = True msgbox( "不在列表中") End If End If |
-- 作者:tcseintist -- 发布时间:2019/7/15 11:14:00 -- 试了下哈,确实达到我想要的效果了,但是~! 还是有个问题咯: 输入非列表内容会被验证并弹出提示了, 但是,当我复制进去的内容,他并不会去验证,更不会有提示,如图附件—— |
-- 作者:有点蓝 -- 发布时间:2019/7/15 12:01:00 -- DataColChanging事件 If e.DataCol.Name = "第二列" AndAlso e.NewValue > "" Dim str() As String = Tables("表B").Cols("第二列").ComboList.Split("|") If Array.IndexOf(str,e.NewValue ) < 0 Then e.Cancel = True msgbox( "不在列表中") End If End If |