以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]窗口录入人员姓名时筛选与表中已有姓名是否重复的请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186703)

--  作者:tkxffb
--  发布时间:2023/5/22 13:28:00
--  [求助]窗口录入人员姓名时筛选与表中已有姓名是否重复的请教
老师好,做一个差旅费管理的系统,需要防止录入出差人员时作假多领差旅费,例如李光明和同事3月15日至22日在甲地出差,差旅费已在系统录入并报销,他另外几个同事3月17日至26日在乙地出差,但在乙地出差的同事为了多领出差补助,把李光明也写到乙地出差的人员名单中了。我想在录入窗口录入时就自动筛选出来,然后弹出一个提示框,可是不会做,试了多次也搞不定,请老师指点。


图片点击可在新窗口打开查看此主题相关图片如下:360截图20230522124055091.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:360截图20230522124225684.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2023/5/22 13:33:41编辑过]

--  作者:有点蓝
--  发布时间:2023/5/22 13:33:00
--  
具体需要做什么用的筛选?写了什么代码?
--  作者:tkxffb
--  发布时间:2023/5/22 13:37:00
--  
有点蓝老师好,尝试着用Select、like等方式,但都不行,完全不得要领,不知道该怎么做了,麻烦您指点一下,谢谢
--  作者:有点蓝
--  发布时间:2023/5/22 13:43:00
--  
具体需要做什么样的筛选?举例说明一下
--  作者:tkxffb
--  发布时间:2023/5/22 13:54:00
--  
我结合着上面的两个图说,第一个图中,李光明于3月15日至22日在甲地出差,并且已经录入差旅费管理系统,姓名登记在表中了。第二个图,他同事于3月17日至26日在乙地出差,回来后他同事登录管理系统,在录入窗口把李光明的名字录入了,我想实现的目的是,当他同事在出发日期填入3月17日后,触发窗口控件事件,弹出提醒窗口,提示李光明不可能于3月15日至22日在甲地出差,又于3月17日至26日到乙地出差。
[此贴子已经被作者于2023/5/22 13:55:10编辑过]

--  作者:有点蓝
--  发布时间:2023/5/22 14:01:00
--  
for each s as string  in e.form.controls("出差人姓名").text.split(",")
if datatables("某表").find("\',\'+出差人姓名+\',\' like \'%," & s & ",%\' and 出发日期 >=#" & e.form.controls("出发日期").value & "# and 返回日期 <=#" & e.form.controls("返回日期").value & "#") isnot nothing then
msgbox("提示")
end if
next

--  作者:tkxffb
--  发布时间:2023/5/26 20:41:00
--  
老师好,不好意思,还得麻烦您。下面是我参照您写的指点写的代码,但这里有一个问题,比如上面的表中有个人叫李四,我在窗口中录入“李四林”时,也弹出提醒,能不能请麻烦您改一下?谢谢

For Each s As String In e.form.controls("出差人姓名").text.split(",")   
       If DataTables("差旅费统计表").find("\',\'+出差人姓名+\',\' like \'," & s & ",\' and 返回日期 >#" & e.form.controls("出发日期").value & "# and 出发日期 <#" & e.form.controls("返回日期").value & "#") IsNot Nothing Then
        If MessageBox.Show("有出差人员与以前记录重复","提示",MessageBoxButtons.OK,MessageBoxIcon.Error)=DialogResult.OK Then
           Tables("差旅费统计表").current("出差人姓名") = Nothing
           Tables("差旅费统计表").current("出差人数") = Nothing
        End If
    ElseIf DataTables("差旅费统计表").find("\',\'+出差人姓名+\',\' like \'," & s & ",\' and 返回日期 =#" & e.form.controls("出发日期").value & "#") IsNot Nothing Then
        If MessageBox.Show("有出差人员同日一返一出,请核减出差补助","提示",MessageBoxButtons.OK,MessageBoxIcon.Error)=DialogResult.OK Then
        End If
    ElseIf DataTables("差旅费统计表").find("\',\'+出差人姓名+\',\' like \'," & s & ",\' and 出发日期 =#" & e.form.controls("返回日期").value & "#") IsNot Nothing Then
        If MessageBox.Show("有出差人员同日一返一出,请核减出差补助","提示",MessageBoxButtons.OK,MessageBoxIcon.Error)=DialogResult.OK Then
        End If
    End If
Next

--  作者:有点蓝
--  发布时间:2023/5/27 8:32:00
--  
If DataTables("差旅费统计表").find("\',\'+出差人姓名+\',\' like \'%," & s & ",%\' and 返回
--  作者:tkxffb
--  发布时间:2023/5/27 23:08:00
--  

[此贴子已经被作者于2023/5/28 1:13:07编辑过]