以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]“for” 必须以匹配的 “next” 结束  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=20314)

--  作者:云淡风轻
--  发布时间:2012/6/4 17:17:00
--  [求助]“for” 必须以匹配的 “next” 结束

Dim kd As String=""

Dim nd1 As WinForm.TreeNode

For Each dr As DataRow In dt.Datarows
    If dr("分类号")="3" Then kd ="生产技术管理"
    Else If dr("分类号")="8" Then kd ="基本建设" 
    Else kd ="设备类" 
    End If
    nd1.nodes.add("0101",kd)

Next

 

保存弹出“for” 必须以匹配的 “next” 结束警告

 

把    If dr("分类号")="3" Then kd ="生产技术管理"
    Else If dr("分类号")="8" Then kd ="基本建设" 
    Else kd ="设备类" 
    End If
删掉可以保存

 

什么问题?其他都不用管,我没觉得Next匹配不上啊

(有人说Else If 改成ElseIf,还是不行 )
[此贴子已经被作者于2012-6-4 17:19:02编辑过]

--  作者:ybil
--  发布时间:2012/6/4 17:51:00
--  

Dim kd As String

Dim nd1 As WinForm.TreeNode

For Each dr As DataRow In dt.Datarows
    kd = IIf(dr("分类号")="3","生产技术管理",IIF(dr("分类号")="8", "基本建设","设备类"))
    nd1.nodes.add("0101",kd)

Next


--  作者:云淡风轻
--  发布时间:2012/6/4 17:56:00
--  

我想知道为什么我的代码通不过,没觉得不对呀?

  kd = IIf(dr("分类号")="3","生产技术管理",IIF(dr("分类号")="8", "基本建设","设备类"))
如果以后还要增加1,2,4等不是设备的怎么写?

这样写感觉写死了

[此贴子已经被作者于2012-6-4 17:57:31编辑过]

--  作者:ybil
--  发布时间:2012/6/4 18:41:00
--  

方法一:

另建一[类別]表,列设[分类号]及[名称]


Dim dr,dr1 as Datarow

Dim nd1 As WinForm.TreeNode

For Each dr  In dt.Datarows

     dr1 = DataTables("类别").Find("分类号 = \'" & dr("分类号")  &  "\'")

      if dr1 Isnot Nothing Then

         nd1.nodes.add("0101",dr1("名称")

      End if

Next



方法二:

Dim i As Integer

Dim kd As String

Dim dr,dr1 as Datarow

Dim nd1 As WinForm.TreeNode

Dim kds1 As String() ={"1","2","3"}

Dim Names2 As String() ={"生产技术管理","基本建设","设备类"}

For Each dr  In dt.Datarows

        i=0

       For   each kd  in  kds1 

           if  kd = dr("分类号") Then

                Exit  For 

           End if 

           i+=1

     Next 

  nd1.nodes.add("0101",Names2(i))

Next


[此贴子已经被作者于2012-6-4 18:42:06编辑过]