关于TreeView控件的问题~以及实时错误'3265'

舒克的灰机 2010-05-25 08:04:05
0 0
想用TreeView控件实现查询~可以展开子节点~(图书类别,下面有三个子类)
之前看了几个相关文章~但是还是对代码着块不太懂 ~
下面是自己弄的~但是一直在报错~ VB实时错误'3265'(当时看一篇文章说的是在出错的地方加上On Error Resume Next,但是加上这个后子节点不能显示相应数据~)


下面是主要代码~


Private Sub Form_Load()
Dim strSQL As String

'设置TreeView1属性
TreeView1.LineStyle = 0 '在兄弟节点和父节点之间显示线
'树状外观包含全部元素
'建立名称为"图书类别"的父节点
Set nodx = TreeView1.Nodes.Add(, , "图书类别", "图书类别")

'打开数据库
DBCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\Data\BookShop.mdb;Persist Security

Info=False"
DBCn.Open

strSQL = "select * from Cate"
DBRec.Open strSQL, DBCn, adOpenDynamic, adLockOptimistic '打开Cate表
If DBRec.EOF Then Exit Sub '如果数据库Cate表为空,则退出当前窗体
DBRec.MoveFirst

intX = 1 'strX数组下标
'添加商品类型的子节点
Do While DBRec.EOF = False
strX(intX) = DBRec.Fields("分类名称")
Set nodx = TreeView1.Nodes.Add("图书类别", tvwChild, "Ware" & intX, DBRec.Fields("分类编号") & strX(intX))
intX = intX + 1
' -------------------------这点缺点东西,高手帮忙补上------------------------
DBRec.MoveNext
Loop
DBRec.Close '关闭Cate表
DBCn.Close '关闭数据库

TreeView1.Nodes(1).Expanded = True '默认展开子节点
'调用初始列表
ms_db ("图书类别")

End Sub
...全文
48 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
舒克的灰机 2010-05-26
  • 打赏
  • 举报
回复
intX = 1 'strX数组下标
'添加商品类型的子节点
Do While DBRec.EOF = False
strX(intX) = DBRec.Fields("分类名称")
Set nodx = TreeView1.Nodes.Add("图书类别", tvwChild, "Ware" & intX, DBRec.Fields("分类编号") & strX(intX))
intX = intX + 1
' -------------------------这点缺点东西,高手帮忙补上------------------------
DBRec.MoveNext
Loop
DBRec.Close '关闭Cate表
DBCn.Close '关闭数据库

就是因为这点缺行代码~所以导致后面

If (myRs.Fields("分类编号").Value = str) = True Then 出现3265错误

希望朋友来改正~
生命密码 2010-05-26
  • 打赏
  • 举报
回复
错误出在哪行 楼主得标出来啊 注意提问方式 这么长的代码很少人会挨着看的
舒克的灰机 2010-05-25
  • 打赏
  • 举报
回复
全部代码如下
Dim DBCn  As New ADODB.Connection
Dim DBRec As New ADODB.Recordset '打开Cate表
Dim myConn As ADODB.Connection
Dim myRs As ADODB.Recordset '打开Book表
Dim nodx As Node
Dim intX As Integer
Dim intY As Integer
Dim intZ As Integer
Dim intU As Integer
Dim bolTF As Integer
Dim strX(1 To 200) As String
Dim strY(1 To 200) As String
Dim str As String

'主要代码,但是很不成熟 - -

Private Sub Form_Load()
Dim strSQL As String

'设置TreeView1属性
TreeView1.LineStyle = 0 '在兄弟节点和父节点之间显示线
'树状外观包含全部元素
'建立名称为"图书类别"的父节点
Set nodx = TreeView1.Nodes.Add(, , "图书类别", "图书类别")

'打开数据库
DBCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\Data\BookShop.mdb;Persist Security Info=False"
DBCn.Open

strSQL = "select * from Cate"
DBRec.Open strSQL, DBCn, adOpenDynamic, adLockOptimistic '打开Cate表
If DBRec.EOF Then Exit Sub '如果数据库Cate表为空,则退出当前窗体
DBRec.MoveFirst

intX = 1 'strX数组下标
'添加商品类型的子节点
Do While DBRec.EOF = False
strX(intX) = DBRec.Fields("分类名称")
Set nodx = TreeView1.Nodes.Add("图书类别", tvwChild, "Ware" & intX, DBRec.Fields("分类编号") & strX(intX))
intX = intX + 1

DBRec.MoveNext
Loop

DBRec.Close '关闭Cate表
DBCn.Close '关闭数据库

TreeView1.Nodes(1).Expanded = True '默认展开子节点
'调用初始列表
ms_db ("图书类别")

End Sub
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) 'Treeview1_NodeClick事件
str = Node.Text
ms_db (str) '触发单击事件并通过调用ms_db函数显示相应的列表
End Sub

Function ms_db(strss As String) As Boolean

Dim mystr As String
Dim introw As Integer
Dim inthigh As Integer

Set myConn = New ADODB.Connection
Set myRs = New ADODB.Recordset
myConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\Data\BookShop.mdb;Persist Security Info=False"
myConn.Open
mystr = "select * from Book"
myRs.Open mystr, myConn, adOpenStatic, adLockReadOnly
myRs.MoveFirst


With MSFlexGrid1

.RowHeight(0) = 500
.ColWidth(0) = 300
.ColWidth(1) = 1200
.ColWidth(2) = 3000
.ColWidth(3) = 1000
.ColWidth(4) = 1500
.ColWidth(5) = 1500
.ColWidth(6) = 900
.ColWidth(7) = 900

MSFlexGrid1.TextMatrix(0, 1) = "图书编号"
MSFlexGrid1.TextMatrix(0, 2) = "图书名称"
MSFlexGrid1.TextMatrix(0, 3) = "图书类型"
MSFlexGrid1.TextMatrix(0, 4) = "作者"
MSFlexGrid1.TextMatrix(0, 5) = "出版社"
MSFlexGrid1.TextMatrix(0, 6) = "价格"
MSFlexGrid1.TextMatrix(0, 7) = "数量"

End With

Select Case strss
Case "10计算机"
MSFlexGrid1.Clear
introw = 1
MSFlexGrid1.Rows = 42
For inthigh = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.RowHeight(inthigh) = 300
Next
bolTF = ms_db1(introw, "日化类")

Exit Function

Case "11数学"
introw = 1
MSFlexGrid1.Rows = 50
For inthigh = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.RowHeight(inthigh) = 300
Next
bolTF = ms_db1(introw, "数学")

Exit Function

Case "12文学"
MSFlexGrid1.Clear
introw = 1
MSFlexGrid1.Rows = 70
For inthigh = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.RowHeight(inthigh) = 300
Next
bolTF = ms_db1(introw, "文学")

Exit Function

Case "图书类别"
introw = 1
MSFlexGrid1.Rows = 155
For inthigh = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.RowHeight(inthigh) = 300
Next
Do While myRs.EOF = False

MSFlexGrid1.TextMatrix(introw, 1) = myRs.Fields("图书编号").Value
MSFlexGrid1.TextMatrix(introw, 2) = myRs.Fields("图书名称").Value
MSFlexGrid1.TextMatrix(introw, 3) = myRs.Fields("图书类型").Value
MSFlexGrid1.TextMatrix(introw, 4) = myRs.Fields("作者").Value
MSFlexGrid1.TextMatrix(introw, 5) = myRs.Fields("出版社").Value
MSFlexGrid1.TextMatrix(introw, 6) = myRs.Fields("价格").Value
MSFlexGrid1.TextMatrix(introw, 7) = myRs.Fields("数量").Value

myRs.MoveNext
introw = introw + 1

Loop
myRs.MoveFirst
Exit Function
End Select
ms_db = True

End Function

Function ms_db1(introw As Integer, str As String) As Boolean
Do While myRs.EOF = False


' On Error Resume Next

If (myRs.Fields("分类编号").Value = str) = True Then

MSFlexGrid1.TextMatrix(introw, 1) = myRs.Fields("图书编号").Value
MSFlexGrid1.TextMatrix(introw, 2) = myRs.Fields("图书名称").Value
MSFlexGrid1.TextMatrix(introw, 3) = myRs.Fields("图书类型").Value
MSFlexGrid1.TextMatrix(introw, 4) = myRs.Fields("作者").Value
MSFlexGrid1.TextMatrix(introw, 5) = myRs.Fields("出版社").Value
MSFlexGrid1.TextMatrix(introw, 6) = myRs.Fields("价格").Value
MSFlexGrid1.TextMatrix(introw, 7) = myRs.Fields("数量").Value
introw = introw + 1
End If

myRs.MoveNext

If introw > MSFlexGrid1.Rows Then
Exit Do
End If
Loop
myRs.MoveFirst

With MSFlexGrid1

.RowHeight(0) = 500
.ColWidth(0) = 300
.ColWidth(1) = 1200
.ColWidth(2) = 3000
.ColWidth(3) = 1000
.ColWidth(4) = 1500
.ColWidth(5) = 1500
.ColWidth(6) = 900
.ColWidth(7) = 900

MSFlexGrid1.TextMatrix(0, 1) = "图书编号"
MSFlexGrid1.TextMatrix(0, 2) = "图书名称"
MSFlexGrid1.TextMatrix(0, 3) = "图书类型"
MSFlexGrid1.TextMatrix(0, 4) = "作者"
MSFlexGrid1.TextMatrix(0, 5) = "出版社"
MSFlexGrid1.TextMatrix(0, 6) = "价格"
MSFlexGrid1.TextMatrix(0, 7) = "数量"

End With
End Function

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧