1、新建三个组合框combobox,分别为 姓名框、出生年月框、进编年月框
2、有两个数据表:表1、表2,结构相同,都是职工的信息,里面含 姓名、出生年月、进编年月等,信息内容大部分相同,只有少部分不同
3、设计【姓名框】的下拉菜单,姓名为表2比表1多出的人员,原计划是先获得表1的所有姓名,再加上条件是:这些姓名不包含于表2的姓名中的部分,问题是这样只用姓名来排除,会把同姓名的部分遗漏
比如:表1中有姓名:张三,出生年月:201902,表2中新增了姓名:张三,出生年月:201903,这两个不是同一个人
请教:如何在 组合框的【姓名】textchanged中设置代码、在【出生年月】textchanged中设置代码、在【进编年月】textchanged中设置代码
[此贴子已经被作者于2025/4/11 11:04:12编辑过]
Dim 姓名 As WinForm.ComboBox = e.Form.Controls("待添加姓名框")
Dim cm/d As New SQ/LCom/ma/nd
cm/d.Conn/ection/Name = "职工信息"
cm/d.Com/mand/Text = "Sel/ect [姓名],[出生年月],[工龄起算],[进编年月],[姓名]+'/'+[出生年月]+'/'+[工龄起算]+'/'+[进编年月] As 职工名称 From {表2} Where 。。。 "
Dim dt As Data/Table = cm/d.Ex/ecuteR/eader()
‘表1里也要定义一个【职工名称】
姓名.ComboList = dt.GetCom/boList/String( "姓名" ," 职工名称 not in (表1.。。。。。。) ", "姓名" )
老师,我自己编了一个思路,请问,这个黄色部分怎么写?
老师,您好! 本来我不是表1和表2,实际是一个表,一个是表中【年度】=2024的数据,一个是表中【年度】=2025的数据,我是为了提出问题更简单化这么说的,但就这么改变了说法,反而使得按上楼的思路变得不会写了,现贴个我自己写的代码,但明显运行慢了,因为是先加载了大量数据,然后再剔除无用的数据。
【就是找出2025年比2024年多出来的人员】
Dim cm/d As New S/Q/LCo/m/man/d
cm/d.Co/nn/ec/ti/onN/ame = "补贴"
cm/d.Co/m/ma/nd/Text = "Se/le/ct [教师姓名],[教师姓名]+[出生年月] As 教师名称1 From {发放名册} Whe/re 年度 = 2024 "
Dim dt1 As Da/taT/able = cm/d.Exe/cut/eR/ea/der()
cm/d.Com/ma/nd/Text = "Sel/ect [教师姓名],[教师姓名]+[出生年月] As 教师名称2 From {发放名册} Where 年度 = 2025 "
Dim dt2 As Da/taT/able = cm/d.Ex/ec/uteR/ea/der()
Dim s As String
s = Dt1.Get/Co/mb/oLis/tString("教师名称1","").replace("|","','")
Dim 待添加教师 As Win/Form.Co/mboB/ox = e.Form.Con/trols("待添加教师姓名框")
待添加教师.Co/mboL/ist = Dt2.GetC/om/boLis/tStr/ing( "教师姓名" ," 教师名称2 not in ('"& s &"') " ,"教师姓名" )
老师,我估计是改一下黄色的部分,但这方面确实不怎么会写,其他思路也做不起来,请帮忙给我改一下 ,写个完整的代码,特别感谢!
[此贴子已经被作者于2025/4/12 16:22:28编辑过]
cmd.CommandText = "Select [教师姓名],[教师姓名]+[出生年月] As 教师名称2 From {发放名册} as a Where 年度 = 2025 and not exist(s
elect
[教师姓名] from {发放名册} as b Where 年度 = 2024 and a.[教师姓名]=b.[教师姓名] and a.[出生年月]=b.[出生年月])"
提示 : 内容是 在 select 附近有语法错误
(另外:,[教师姓名]+[出生年月] As 教师名称2 这个语句是不是没有作用了,可以略去 ?)
[此贴子已经被作者于2025/4/12 17:03:16编辑过]