首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb 为什么会出现实时异常啊

2012-05-16 
vb 为什么会出现实时错误啊?实时错误35603无效的关键字我想用递归生成一树。但是改不好。出现实时错误35603

vb 为什么会出现实时错误啊?
实时错误35603无效的关键字

我想用递归生成一树。但是改不好。出现实时错误35603无效的关键字。错误定位在
Set NewNode = TreeView1.Nodes.Add("K_" & key, tvwChild, sKey, sName)可我并不知道哪里错了。

数据库
partno部门编号
partname部门名称
parentno父部门名称

Private Sub loadtree()
  Set adoRec = adoConn.Execute("select * from part where ParentNo = '0'")
  Dim str_Key As String, str_Key1 As String
  Dim str_Name As String
   
  TreeView1.Nodes.Clear
  adoRec.MoveFirst
  Do Until adoRec.EOF
  str_Key = Trim(adoRec.Fields("PartNo"))
  str_Name = adoRec.Fields("PartName")
  AddRootNode "K_" & str_Key, str_Name
  AddChildNode str_Key'错误出现在这个函数中
  adoRec.MoveNext
  Loop
  adoRec.Close

End Sub
’添加头结点
Sub AddRootNode(str_Key As String, str_Name As String)
  Dim ndNewNode As Node
  Set ndNewNode = TreeView1.Nodes.Add(, tvwChild, str_Key, str_Name)
End Sub
'我本想将这个函数写成递归调,生成子树
Sub AddChildNode(key As String)
  Dim rs As New ADODB.Recordset
  Dim NewNode As Node
  Dim sSql As String
  Dim sKey As String
  Dim sName As String

  sSql = "select * from part where ParentNo = '" & key & "'"
  If Not rs.State = adStateClosed Then rs.Close
  rs.CursorLocation = adUseClient
  rs.Open sSql, adoConn

  If rs.RecordCount <> 0 Then
  rs.MoveFirst
  Do Until rs.EOF
  sKey = Trim(rs.Fields("PartNo"))
  sName = rs.Fields("PartName")
'就是这里提示实时错误35603无效的关键字,但我又不知道哪里有问题
  Set NewNode = TreeView1.Nodes.Add("K_" & key, tvwChild, sKey, sName)
  rs.MoveNext
  Loop
  End If
  rs.Close
End Sub

请大家帮忙指出错误在哪里,应该怎么写?


[解决办法]
= =
很久以前我也发过类似的一个帖子~结果就那样不知不觉沉了~

TreeView1控件我也不清楚~

帮你顶顶~
[解决办法]
是数据库操作问题
[解决办法]
你的代码中sKey不可以是纯数据串。
考虑用sKey = "a" & Trim(rs.Fields("PartNo"))

代码还有其它问题,你自己改吧。

热点排行