Foxtable(狐表)用户栏目专家坐堂 → [求助] 这段代码为什么通不过,


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

主题:[求助] 这段代码为什么通不过,

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
[求助] 这段代码为什么通不过,  发帖心情 Post By:2009/5/8 13:01:00 [只看该作者]

DataColChanged事件代码:

 

If e.DataCol.Name = "上级项目名称" Then

   Dim dr As DataRow

   dr = DataTables("项目明细").Find("[工程序号] = '" & Tables("项目信息").Current("序号") & "' and [项目名称] = '" & e.datarow("项目名称") & "'","编号 Desc")

   if dr.IsNull("项目名称")  Then

      e.datarow("选择标记") = false

   else

      e.datarow("选择标记") = true

   end if

end if



去掉这个判断可以(也就是这一段为何通不过?):

   if dr.IsNull("项目名称")  Then

     

献丑!


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


加好友 发短信
等级:三尾狐 帖子:719 积分:5181 威望:0 精华:1 注册:2008/9/24 10:41:00
  发帖心情 Post By:2009/5/8 13:15:00 [只看该作者]

看好多老师在isnull()后面加个指定判断,不知是不是这样.
if
dr.IsNull("项目名称") = true then

还有DR如找不到是不是也要出错,是否也要加个dr isnot nothing 的判断
[此贴子已经被作者于2009-5-8 13:20:09编辑过]

 回到顶部
美女呀,离线,留言给我吧!
yangming
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/8 13:16:00 [只看该作者]

多分支形式:

If 条件1 Then
    代码1

ElseIf
条件2 Then
    代码2

ElseIf
条件3 Then
    代码3

    .....
Else

    代码X

End If


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


加好友 发短信
等级:童狐 帖子:252 积分:1355 威望:0 精华:0 注册:2009/4/5 13:06:00
  发帖心情 Post By:2009/5/8 13:26:00 [只看该作者]

If e.DataCol.Name = "上级项目名称" Then
    Dim dr As DataRow
    dr = DataTables("项目明细").Find("[工程序号] = '" & Tables("项目信息").Current("序号") & "' and [项目名称] = '" & e.datarow("项目名称") & "'","编号 Desc")
    If dr Is Nothing Then
        e.datarow("选择标记") = false
    else
        e.datarow("选择标记") = true
    end if
end if
[此贴子已经被作者于2009-5-8 13:26:56编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/5/8 13:32:00 [只看该作者]

少了个 if dr isnot nothing的判断,你只判断dr("项目名称")是否为空,没有考虑dr也可能为空。

补充:4楼的代码好像不太准确,dr是nothing,与dr("项目名称")为空是两回事,直接代替不太合适。

If e.DataCol.Name = "上级项目名称" Then

   Dim dr As DataRow

   dr = DataTables("项目明细").Find("[工程序号] = '" & Tables("项目信息").Current("序号") & "' and [项目名称] = '" & e.datarow("项目名称") & "'","编号 Desc")

  if dr isnot nothing
  
if dr.IsNull("项目名称")  Then

      e.datarow("选择标记") = false

   else

      e.datarow("选择标记") = true

   end if
  
end if
end if

[此贴子已经被作者于2009-5-8 13:36:35编辑过]

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


加好友 发短信
等级:婴狐 帖子:36 积分:593 威望:0 精华:0 注册:2008/11/2 22:17:00
  发帖心情 Post By:2009/5/8 14:25:00 [只看该作者]

 

If e.DataCol.Name = "上级项目名称" Then

   Dim dr As DataRow

   dr = DataTables("项目明细").Find("[工程序号] = '" & Tables("项目信息").Current("序号") & "' and [项目名称] = '" & e.datarow("项目名称") & "'","编号 Desc")

  

elseif dr.IsNull("项目名称")  Then


      e.datarow("选择标记") = false

   else

      e.datarow("选择标记") = true

   end if


我认为这样就行了


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/8 14:30:00 [只看该作者]

上午8:58分,我在群里就回了的,老程居然只管提问,不看回复。

图片点击可在新窗口打开查看


金亿通(475361999) 08:57:25
但是运行时这个代码出错:
If e.DataCol.Name = "上级项目名称" Then
  Dim dr As DataRow
  dr = DataTables("项目明细").Find("[工程序号] = '" & Tables("项目信息").Current("序号") & "' and [项目名称] = '" & e.datarow("项目名称") & "'")
  if dr.IsNull("项目名称") then
     e.datarow("选择标记") = False
  else
     e.datarow("选择标记") = true
  end if
end if

贺老六(84069599) 08:58:38
If e.DataCol.Name = "上级项目名称" Then
  Dim dr As DataRow
  dr = DataTables("项目明细").Find("[工程序号] = '" & Tables("项目信息").Current("序号") & "' and [项目名称] = '" & e.datarow("项目名称") & "'")
  If dr isnot Nothing Then
     if dr.IsNull("项目名称") then
         e.datarow("选择标记") = False
     else
        e.datarow("选择标记") = true
     end if
   End If
end if

[此贴子已经被作者于2009-5-8 14:48:13编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/8 14:35:00 [只看该作者]

可能这样合适点:

If e.DataCol.Name = "上级项目名称" Then
    Dim dr As DataRow
    dr = DataTables("项目明细").Find("[工程序号] = '" & Tables("项目信息").Current("序号") & "' and [项目名称] = '" & e.datarow("项目名称") & "'")
    If dr isNot Nothing AndAlso dr.IsNull("项目名称") then
        e.datarow("选择标记") = False
    Else
        e.datarow("选择标记") = true
    End If
end if

 回到顶部
美女呀,离线,留言给我吧!
yangming
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/8 14:37:00 [只看该作者]

还是在论坛提问好,大家都学学,呵

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2009/5/8 16:54:00 [只看该作者]

谢谢,还是不能实现,

我需要达到的目的是切换父表的记录,自动将项目选择表的选择标记勾选,勾选条件是当前表的项目在项目明细表已经存在,项目明细表的记录且属于与项目信息表(父表)的当前记录相关联的记录。

 

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


 回到顶部
总数 21 1 2 3 下一页