以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]判断表中某列是否包含指定条件数值的代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=133231) |
-- 作者:hanzhang98 -- 发布时间:2019/4/10 10:20:00 -- [求助]判断表中某列是否包含指定条件数值的代码 老师好。下面代码想按给定的变量条件,在“累计表”的“所属期间”列查找是否存在相同的值,如果存在就提示。但现在只能返回一个。比如:“累计表”的“所属期间”列已存在各自多行的“201812、201901、201902、201903、201904”的值,在我选定条件“201904”时,能返回已存在的信息,但如果再选择“201812” 或 “201901” 或 “201902” 或 “201903” 时就返不回已存在的信息了。请老师帮助指正。谢谢。 我想要的效果是:只要在“累计表”的“所属期间”列存在与给定条件相同的任意值,就提示已存在。除非是“累计表”的“所属期间”列没有的才不提示(主要是为避免重复计做同期工资)
Dim Ljqj As String = Tables("累计表").current("所属期间") \'声明变量初值为"累计表"的"所属期间" Dim Ssqj As String \'声明变量用于存储选定的"所属期间" Dim Ssqj_n As String = e.Form.Controls("ComboBox3_Qjn").TEXT \'声明变量用于存储选定的"所属期间"的"年" Dim Ssqj_y As String = e.Form.Controls("ComboBox4_Qjy").TEXT \'声明变量用于存储选定的"所属期间"的"月" Ssqj = Ssqj_n + Ssqj_y If Ssqj = Ljqj Then MessageBox.Show("你选择的【" & Ssqj & "】期间的薪资已计发, 不可重复!","提示",MessageBoxButtons.Ok,MessageBoxIcon.Information) Return End If [此贴子已经被作者于2019/4/10 10:25:34编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/4/10 10:48:00 -- 弹出各个值看一下,如
msgbox(ljqj) msgbox(ssqj)
如果弹出的值,不正确,说明你代码有问题 |
-- 作者:hanzhang98 -- 发布时间:2019/4/10 12:19:00 -- 老师好。 用“msgbox(Ssqj)”检验文本框输入的值,其随时根据文本框中的输入值在改变。 用“msgbox(Ljqj)”检验[Dim Ljqj As String = Tables("累计表").current("所属期间") ]的值就显示为一个,有时是“201903”,有时又是“201904”,也不变化。开始显示的是什么,到最后也还是什么,不变化。只有在文本框输入的值(Ssqj)与它显示的值相符时,才出现提示。(好像是不根据条件检索,窗口启动时赋给变量的值是什么,就是什么。不动态检索) 老师,可能就是这句[Dim Ljqj As String = Tables("累计表").current("所属期间") ]代码不对,请老师帮助修改。谢谢。 "累计表"不是当前表,是不是与“不是当前表”有关,请老师指正。
[此贴子已经被作者于2019/4/10 12:32:20编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/4/10 12:43:00 -- 没看懂你的逻辑是什么。做一个实例发上来,说明如何操作,需要得到怎样的效果。 |
-- 作者:hanzhang98 -- 发布时间:2019/4/10 13:25:00 -- 老师好。请老师帮助修正代码。谢谢 [此贴子已经被作者于2019/4/10 15:32:42编辑过]
|
-- 作者:hanzhang98 -- 发布时间:2019/4/10 15:06:00 -- 老师好。测试实例已上传,请老师给看看。谢谢。 |
-- 作者:有点甜 -- 发布时间:2019/4/10 15:13:00 --
Forms("统计汇总").close |
-- 作者:hanzhang98 -- 发布时间:2019/4/10 15:24:00 -- 谢谢老师。完美。 |