Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共12 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:写一个复杂的下拉列表

1楼
zhangchi96 发表于:2025/4/11 9:20:00
1、新建三个组合框combobox,分别为 姓名框、出生年月框、进编年月框

2、有两个数据表:表1、表2,结构相同,都是职工的信息,里面含 姓名、出生年月、进编年月等,信息内容大部分相同,只有少部分不同

3、设计【姓名框】的下拉菜单,姓名为表2比表1多出的人员,原计划是先获得表1的所有姓名,再加上条件是:这些姓名不包含于表2的姓名中的部分,问题是这样只用姓名来排除,会把同姓名的部分遗漏
    
    比如:表1中有姓名:张三,出生年月:201902,表2中新增了姓名:张三,出生年月:201903,这两个不是同一个人

请教:如何在 组合框的【姓名】textchanged中设置代码、在【出生年月】textchanged中设置代码、在【进编年月】textchanged中设置代码
2楼
有点蓝 发表于:2025/4/11 9:24:00
使用下拉窗口,把姓名和出身日期(建议使用身份证号码)同时显示出来,类似:http://www.foxtable.com/webhelp/topics/2466.htm
3楼
zhangchi96 发表于:2025/4/11 11:04:00

[此贴子已经被作者于2025/4/11 11:04:12编辑过]
4楼
zhangchi96 发表于:2025/4/11 11:08:00
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.。。。。。。) ", "姓名" )

老师,我自己编了一个思路,请问,这个黄色部分怎么写?
5楼
有点蓝 发表于:2025/4/11 11:15:00
cm/d.Com/mand/Text = "Sel/ect [姓名],[出生年月],[工龄起算],[进编年月],[姓名]+'/'+[出生年月]+'/'+[工龄起算]+'/'+[进编年月] As 职工名称 From {表2} Where  职工名称 not in (selec职工名称 from {表1}) "
6楼
zhangchi96 发表于:2025/4/12 16:18:00
老师,您好!
      本来我不是表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编辑过]
7楼
有点蓝 发表于:2025/4/12 16:33:00
cmd.CommandText = "Select [教师姓名],[教师姓名]+[出生年月] As 教师名称2 From {发放名册} as a Where  年度 = 2025 and not exist(select [教师姓名] from {发放名册} as b Where  年度 = 2024 and a.[教师姓名]=b.[教师姓名] and a.[出生年月]=b.[出生年月])"
8楼
zhangchi96 发表于:2025/4/12 16:56:00
提示  : 内容是 在 select 附近有语法错误

 (另外:,[教师姓名]+[出生年月] As 教师名称2  这个语句是不是没有作用了,可以略去 ?
[此贴子已经被作者于2025/4/12 17:03:16编辑过]
9楼
有点蓝 发表于:2025/4/12 17:06:00
…… {发放名册} as a Where  年度 = 2025 and not exists ( select [教师姓名] from {发放名册} a ……

可以略去
10楼
zhangchi96 发表于:2025/4/12 17:18:00
cmd.CommandText = "Select [教师姓名],[教师姓名]+[出生年月] As 教师名称2 From {发放名册} as a Where  年度 = 2025 and not exist(select 1 from {发放名册} as b Where  年度 = 2024 and a.[教师姓名]=b.[教师姓名] and a.[出生年月]=b.[出生年月])"

老师,这样改就没问题了

共12 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03906 s, 2 queries.