Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共21 条记录, 每页显示 10 条, 页签: [1] [2][3]
[浏览完整版]

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

1楼
程兴刚 发表于: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楼
狐哥 发表于:2009/5/8 13:15:00
看好多老师在isnull()后面加个指定判断,不知是不是这样.
if
dr.IsNull("项目名称") = true then

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

多分支形式:

If 条件1 Then
    代码1

ElseIf
条件2 Then
    代码2

ElseIf
条件3 Then
    代码3

    .....
Else

    代码X

End If

4楼
八婺 发表于: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编辑过]
5楼
cpayinyuan 发表于: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编辑过]
6楼
fm962 发表于: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楼
狐狸爸爸 发表于: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楼
狐狸爸爸 发表于: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
9楼
yangming 发表于:2009/5/8 14:37:00
还是在论坛提问好,大家都学学,呵
10楼
程兴刚 发表于:2009/5/8 16:54:00

谢谢,还是不能实现,

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

 

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

共21 条记录, 每页显示 10 条, 页签: [1] [2][3]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 3 queries.