Foxtable(狐表)用户栏目专家坐堂 → [求助]if……else后总被执行的代码问题?


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

主题:[求助]if……else后总被执行的代码问题?

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


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
[求助]if……else后总被执行的代码问题?  发帖心情 Post By:2019/3/27 16:54:00 [只看该作者]


各位老师下午好!在下面的代码中:e.DataRow("文号") = qz & "【" & nh & "】" & xh & "号"    这段在dr找到重复行和未找到重复行,都被执行了,我本意是想如果找到了相同行的话,就将文件序号清空并退出这段代码,可是在运行时,在提示“此文号已经存在!”并清空文件序号单元格后,还是将“文号”组合填入了,不知错在哪儿,请老师帮我修改并精简一下下面的代码,谢谢!!

If e.DataCol.name ="文件序号" Then
    Dim qz As String = e.DataRow("文号前缀")
    Dim nh As String = e.DataRow("年号")
    Dim xh As String = e.DataRow("文件序号")
Dim wh As String = qz & "【" & nh & "】" & xh & "号"
Dim dr As DataRow = e.DataTable.Find("文号 = '" & wh & "'")
MessageBox.show(wh)
    If dr IsNot Nothing Then
        MessageBox.Show("此文号已经存在!")
e.DataRow("文件序号") = Nothing
        e.Cancel = True
Else
e.DataRow("文号") = qz & "【" & nh & "】" & xh & "号"
       End If
End If


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


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

代码没问题,请上传具体实例测试。

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


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
  发帖心情 Post By:2019/3/28 10:12:00 [只看该作者]

谢谢甜老师!!我将项目呈上,麻烦帮我看看,目前问题有两个:问题一,是在双击表行进入“文件登记”窗口后,修改“文件序号”后,只要是有相同“文号”,会返回去执行两次;问题二,在窗口中修改原有行时内容时,有时窗口上输入了,但不会将修改的内容加到表中去。还谢老师指导!!
[此贴子已经被作者于2019/3/28 10:13:00编辑过]

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


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
  发帖心情 Post By:2019/3/28 10:16:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:文件管理.foxdb

谢谢甜老师!!我将项目呈上,麻烦帮我看看,目前问题有两个:问题一,是在双击表行进入“文件登记”窗口后,修改“文件序号”后,只要是有相同“文号”,会返回去执行两次;问题二,在窗口中修改原有行时内容时,有时窗口上输入了,但不会将修改的内容加到表中去。还谢老师指导!!
[此贴子已经被作者于2019/3/28 10:31:56编辑过]

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


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

1、

 

If e.DataCol.name ="文件序号" Then
    Dim dr As DataRow=e.DataRow
    If dr.Isnull("文号前缀") Then
        MessageBox.Show("文号前缀和文件年号不能为空值!", "提示")
        e.Cancel = True
    End If
    'Else
    Dim qz As String = e.DataRow("文号前缀")
    Dim nh As String = e.DataRow("年号")
    Dim xh As String = e.DataRow("文件序号")
    Dim wh As String = qz & "【" & nh & "】" & xh & "号"
    MessageBox.show(wh)
    Dim dr1 As DataRow = e.DataTable.Find("文号 = '" & wh & "'")
systemready = False
    If dr1 IsNot Nothing Then
        MessageBox.Show("此文号已经存在!")
        e.DataRow("文件序号") = Nothing
        e.Cancel = True
        'ElseIf dr Is Nothing Then
    Else
        e.DataRow("文号") = qz & "【" & nh & "】" & xh & "号"
        'e.DataRow("登记人") = _username
        'e.DataRow("登记时间") = Date.now
    End If
systemready = True
End If

 

2、

 

e.cancel = True
Forms("文件登记").Open()


 回到顶部