'(ACCESS)数据表内的数据是这样的:ID 名称 种类 产地
1 樱桃 雷尼 山东
2 樱桃 拉宾斯 山东
3 樱桃 红灯 山东'(如果这些数据是在数据库中打进去的话,就没发现问题.)'树型控件则显示了:
一级为:樱桃
二级为:雷尼
二级为:拉宾斯
二级为:红灯
________________________________________________________________________________________________
'问题是当我录入数据的时候,(这是第一次录入)录入的数据依次是:'ID 名称 种类 产地
' 4 番茄 广东'此时树型控件则显示了:
一级为:樱桃
二级为:雷尼
二级为:拉宾斯
二级为:红灯
一级为:番茄
二级为:空的 '就是这个问题??
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'(第二次录入)如果再录入数据:'ID 名称 种类 产地
' 5 芒果 广东'这时树型控件则显示了:
一级为:樱桃
二级为:雷尼
二级为:拉宾斯
二级为:红灯
一级为:番茄
二级为:空的
一级为:芒果 '这次录入的数据就没有"种类".树型控件就不会显示有二级了...'请教下各位如何解决才能当没有二级数据的时候就只显示一级呢?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Public Sub addTVW(ByVal TVW As ComctlLib.TreeView) '添加树视过程
Dim db As Connection
Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\2.mdb" & ";" '注意此处的文件名
Dim sql As String
sql = "select * from 表1" '注意此处的SQL语句
Set rs = New Recordset
rs.Open sql, db, adOpenStatic, adLockOptimistic On Error Resume Next
Do While Not rs.EOF '循环读取数据
Err.Clear
Dim a As String
a = TVW.Nodes("A" & rs.Fields("名称")).Text
If Err.Number <> 0 Then
TVW.Nodes.Add , , "A" & rs.Fields("名称"), rs.Fields("名称")
TVW.Nodes.Add "A" & rs.Fields("名称"), tvwChild, "B" & rs.Fields("种类"), rs.Fields("种类")
Err.Clear
Else
TVW.Nodes.Add "A" & rs.Fields("名称"), tvwChild, "B" & rs.Fields("种类"), rs.Fields("种类")
End If rs.MoveNext
Loop ' Call CloseConn
If TVW.Nodes.Count > 0 Then '展开第一级
TVW.Nodes(1).Expanded = True
End If
End SubPrivate Sub Command1_Click() '保存
Dim db As Connection
Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\2.mdb" & ";"
Dim sql As String
sql = "select * from 表1"
Set rs = New Recordset
rs.Open sql, db, 3, 3
rs.AddNew
rs.Fields("名称") = Me.Text1.Text
rs.Fields("种类") = Me.Text2.Text
rs.Fields("产地") = Me.Text3.Text rs.Update
MsgBox "数据保存成功", 64, "提示"
Me.Text1 = ""
Me.Text2 = ""
Me.Text3 = ""
End Sub
解决方案 »
- 定义数据类型问题
- 如何在一个窗体中使用分割栏
- 2个小问题:对象不支持属性或方法和data+dbgrid改为ado+datagrid
- 请教RecordSet.open方法使用问题
- 缩略图问题??
- 关于 Treeview控件,请高手指教。
- 我用shell(app.path+"\mdac.exe"),来调用微软数据访问控件2.0,提示出错:命令行语法错误,
- 在程序中引用了pagesetup,页面设置对话筐,程序退出后(所有窗体关闭,程序不终止
- 紧急求救:VSFlexGrid如何让指定的列与adors的字段对应
- 奇怪了?这里只有VB论坛吗?
- 如何使用VB将Word文档传唤成.pdf????
- 关于EXCEL中VB的编程
On Error Resume Next
Do While Not rs.EOF '循环读取数据
Dim a As String
a = TVW.Nodes("A" & rs.Fields("名称")).Text
TVW.Nodes.Add , , a, rs.Fields("名称")
If len(rs.Fields("种类"))>0 Then TVW.Nodes.Add a, tvwChild, "B" & rs.Fields("种类"), rs.Fields("种类")
rs.MoveNext
Loop
'再次谢谢northwolves兄'原来得加上这个:
'If len(rs.Fields("种类"))>0 Then
'问题已解决了!!!