Foxtable(狐表)用户栏目专家坐堂 → [求助]判断表中某列是否包含指定条件数值的代码


  共有2221人关注过本帖树形打印复制链接

主题:[求助]判断表中某列是否包含指定条件数值的代码

帅哥哟,离线,有人找我吗?
hanzhang98
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
[求助]判断表中某列是否包含指定条件数值的代码  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/10 10:48:00 [只看该作者]

弹出各个值看一下,如

 

msgbox(ljqj)

msgbox(ssqj)

 

如果弹出的值,不正确,说明你代码有问题


 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/10 12:43:00 [只看该作者]

没看懂你的逻辑是什么。做一个实例发上来,说明如何操作,需要得到怎样的效果。

 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/4/10 13:25:00 [只看该作者]

老师好。请老师帮助修正代码。谢谢



[此贴子已经被作者于2019/4/10 15:32:42编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/4/10 15:06:00 [只看该作者]

老师好。测试实例已上传,请老师给看看。谢谢。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/10 15:13:00 [只看该作者]


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_n = "" Or Ssqj_y = "" Then
    MessageBox.Show("  没有选择【所属期间】!","提示",MessageBoxButtons.Ok,MessageBoxIcon.Information)
    Return
End If
Dim fdr As DataRow = DataTables("年度工资").find("所属期间='" & ssqj & "'")
If fdr IsNot Nothing Then
    MessageBox.Show("你选择的【" & Ssqj & "】期间的薪资已计发, 不可重复!","提示",MessageBoxButtons.Ok,MessageBoxIcon.Information)
    Return
End If

 

Forms("统计汇总").close


 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/4/10 15:24:00 [只看该作者]

谢谢老师。完美。

 回到顶部