Foxtable(狐表)用户栏目专家坐堂 → [求助]不知哪不对


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

主题:[求助]不知哪不对

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
[求助]不知哪不对  发帖心情 Post By:2017/6/26 16:08:00 [只看该作者]

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT [_Identify],请购编号,名称规格,单位,编号,报销 FRO M {物资入库} Where [报销] = False "
dt = cmd.ExecuteReader(True)

If MsgBox("确认提交保存?",65,"提示") = 1 Then
    Dim a As Table = Tables("费用管理_Table3")
    Dim b As Table = Tables("入账报销")
    Dim dr1 As DataRow
    For r As Integer = 0 To a.Rows.Count - 1
        b.AddNew
        b.Current("经办") = _username
        b.Current("物料编码") = a.Rows(r)("物料编码")
        b.Current("名称规格") = a.Rows(r)("名称规格")
        ......
        b.Current("备注") = a.Rows(r)("备注")
        b.Current("入库ID") = a.Rows(r)("入库ID")
       
        If a.Rows(r)("入库ID") IsNot Nothing Then
            dr1 = dt.Find("[编号] = '" & a.Rows(r)("入库ID") & "' ")
            dr1("报销") = True
        End If
    Next
    dt.Save()
    For r As Integer = a.rows.Count - 1 To 0 Step -1
        a.Current.Delete
    Next
    DataTables("入账报销").Save()
End If


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2017/6/26 16:11:00 [只看该作者]

 这段:

If a.Rows(r)("入库ID") IsNot Nothing Then
            dr1 = dt.Find("[编号] = '" & a.Rows(r)("入库ID") & "' ")
            dr1("报销") = True
        End If

 

现在的结果是a.Rows(r)("入库ID") 为空值时也执行dr1 = dt.Find("[编号] = '" & a.Rows(r)("入库ID") & "' ")
            dr1("报销") = True

没有达到预期的效果.

正确的代码应该怎样写?


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/26 17:52:00 [只看该作者]

 不应该吧?加上代码测试,看弹出什么。

 

msgbox("zzz" & a.Rows(r)("入库ID") & "zzz" & vbcrlf & (a.Rows(r)("入库ID") IsNot Nothing) & vbcrlf & (a.Rows(r)("入库ID") = Nothing))


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2017/6/27 15:08:00 [只看该作者]

以下是引用有点色在2017/6/26 17:52:00的发言:

 不应该吧?加上代码测试,看弹出什么。

 

msgbox("zzz" & a.Rows(r)("入库ID") & "zzz" & vbcrlf & (a.Rows(r)("入库ID") IsNot Nothing) & vbcrlf & (a.Rows(r)("入库ID") = Nothing))

"入库ID"列空值结果:zzzzzz

                          True

                          True

"入库ID"列值为170401-06时弹出:zzz170401-06zzz

                                             True

                                             False


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2017/6/27 15:12:00 [只看该作者]

这个"入库ID"列挂了个下拉窗口,是这个原因导致有隐性值?怎么破?

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2017/6/27 16:05:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170627160227.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/27 16:16:00 [只看该作者]

代码改成

 

If a.Rows(r)("入库ID") <> Nothing Then


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2017/6/27 16:21:00 [只看该作者]

OK!正确代码:

If a.Rows(r)("入库ID") <> "" Then
            dr1 = dt.Find("[编号] = '" & a.Rows(r)("入库ID") & "' ")
            dr1("报销") = True
        End If


 回到顶部