以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]选择数据问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=90839) |
||||
-- 作者:hero_xinyu -- 发布时间:2016/9/22 16:26:00 -- [求助]选择数据问题 ![]() ![]() 如果数据库中存在两个同名的简称,无论怎样选择,能只能添加第一条数据,第二条添加不上
[此贴子已经被作者于2016/9/22 16:26:48编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2016/9/22 16:43:00 -- 测试没有问题 |
||||
-- 作者:hero_xinyu -- 发布时间:2016/9/22 16:47:00 -- 按照我的例子来讲,我选择添加不了第二个444厂,也就是河南分厂那条数据 |
||||
-- 作者:hero_xinyu -- 发布时间:2016/9/22 17:04:00 -- 这个在我这边测试,如果下拉列表中有两条简称一样的,就是添加不了第二条的数据,双击添加的都是第一条数据 |
||||
-- 作者:有点蓝 -- 发布时间:2016/9/22 17:20:00 -- 测试没有问题,项目1的值是有变化的 |
||||
-- 作者:hero_xinyu -- 发布时间:2016/9/23 1:46:00 -- 我再试试 我测试好多次 项目1值无变化 都是第一条数据 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2016/9/23 8:23:00 -- 确实选择的是第一条,原因很简单,你看看你的代码:
If e.DataCol.name = "简称"
你用的是工厂简称,简称会重名,你应该用不重复的列,例如工厂ID列来区分不同的行。 别人给你写的代码,你要去理解,否则给你写再多,你也没有办法进步,学会了1+1,换成1+2就不知道怎么算了。
还有你这样设计系统,以后能用吗? 如果不会重名,你在这里折腾什么? 如果会重名,为什么要根据名称来设计,为什么不改用ID? 如果会重名,凭证表不增加一个工厂ID列,那么用户看到444厂,怎么知道是那个444厂?
先理清楚自己的业务逻辑,再来设计,你自己对于需求都稀里糊涂,别人对你的帮助意义又何在?
[此贴子已经被作者于2016/9/23 8:53:35编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2016/9/23 8:45:00 -- 我帮你改了一下:
1、凭证表增加一个"工厂ID"列,整数型
2、凭证表的DataColchanged事件改为:
If e.DataCol.name = "工厂ID"
3、下拉窗口的DropDownClosed事件代码改为: If e.Selected Then \'如果选择了值
建议先看视频教程:
[此贴子已经被作者于2016/9/23 8:59:58编辑过]
|
||||
-- 作者:hero_xinyu -- 发布时间:2016/9/23 8:57:00 -- 这个附件是我单独做出来需要解决问题的,当时没有考虑会有重名情况,在原有系统中,项目1代表银行开 户 名称,项目2代表开户账号,项目3代表开 户 银 行,实际操作中,工厂有几百家,今年开始有部门厂家新增了其它银 行的信息,比如444厂,既有农 行 开 户的,又有中行开 户的,就会出现两条一样简称的,操作员录入的时候没有把简称区别开,就会造成这种。 [此贴子已经被作者于2016/9/23 8:57:50编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2016/9/23 8:58:00 -- 看8楼 |