1,451
社区成员
发帖
与我相关
我的任务
分享
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