📄 main_jcxx_tslbsz.frm
字号:
CacheSize = 50
MaxRecords = 0
BOFAction = 0
EOFAction = 0
ConnectStringType= 1
Appearance = 1
BackColor = -2147483643
ForeColor = -2147483640
Orientation = 0
Enabled = -1
Connect = ""
OLEDBString = ""
OLEDBFile = ""
DataSourceName = ""
OtherAttributes = ""
UserName = ""
Password = ""
RecordSource = ""
Caption = "Adodc1"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
_Version = 393216
End
End
Attribute VB_Name = "main_jcxx_tslbsz"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim i As Integer '定义整型变量
Dim rs1 As New ADODB.Recordset '定义数据集对象
Dim SQL As String '定义字符串变量
Public Sub Tree_change() '声明一个树状显示数据的过程
On Error Resume Next
Dim key, text As String
rs1.Open "select * from tslbb order by 类别编号", Cnn, adOpenKeyset, adLockOptimistic
If rs1.RecordCount > 0 Then
With rs1
.MoveFirst
Do While .EOF = False
If Len(.Fields("类别编号")) = 2 Then
'Len 函数返回 Long,其中包含字符串内字符的数目,或是存储一变量所需的字节数。
key = Trim(.Fields("类别名称"))
'Trim函数返回 Variant (String),其中包含指定字符串的拷贝, 没有前导和尾随空白。
text = "(" & Trim(.Fields("类别编号")) & ")" & Trim(.Fields("类别名称"))
Set Node1 = TreeView1.Nodes.Add(, , key, text, Val(.Fields("级别")))
End If
If Len(.Fields("类别编号")) = 5 Then
key = Trim(.Fields("类别名称"))
text = "(" & Trim(.Fields("类别编号")) & ")" & Trim(.Fields("类别名称"))
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, key, text, Val(.Fields("级别")))
End If
If Len(.Fields("类别编号")) = 9 Then
key = Trim(.Fields("类别名称"))
text = "(" & Trim(.Fields("类别编号")) & ")" & Trim(.Fields("类别名称"))
Set Node3 = TreeView1.Nodes.Add(Node2.Index, tvwChild, key, text, Val(.Fields("级别")))
End If
If Len(.Fields("类别编号")) = 14 Then
key = Trim(.Fields("类别名称"))
text = "(" & Trim(.Fields("类别编号")) & ")" & Trim(.Fields("类别名称"))
Set Node4 = TreeView1.Nodes.Add(Node3.Index, tvwChild, key, text, Val(.Fields("级别")))
End If
If Len(.Fields("类别编号")) = 20 Then
key = Trim(.Fields("类别名称"))
text = "(" & Trim(.Fields("类别编号")) & ")" & Trim(.Fields("类别名称"))
Set Node5 = TreeView1.Nodes.Add(Node4.Index, tvwChild, key, text, Val(.Fields("级别")))
End If
.MoveNext
Loop
End With
End If
rs1.Close
End Sub
Private Sub Cmdupdate_Click() '修改
Text1(3).Enabled = True
Text1(3).SetFocus
Combo1.Enabled = False
CmdSave.Enabled = True '保存按钮可用
CmdEsc.Enabled = True '取消按钮可用
CmdAdd.Enabled = False '添加按钮不可用
CmdDelete.Enabled = False '删除按钮不可用
End Sub
Private Sub Form_Activate()
'添加级别列表
For i = 1 To 5
Combo1.AddItem (i) & "级"
Next i
Combo1.ListIndex = 0
'打开表
rs1.Open "select * from tslbb order by 类别编号", Cnn, adOpenKeyset, adLockOptimistic
If rs1.RecordCount > 0 Then
For i = 1 To 3
If rs1.Fields(i) <> "" Then Text1(i).text = rs1.Fields(i) '将字段值赋给Text1控件数组
Text1(i).Enabled = False
Next i
Combo1.text = rs1.Fields("级别")
End If
rs1.Close '关闭表
Call Tree_change '调用显示数据过程
CmdSave.Enabled = False
CmdEsc.Enabled = False
Cmdupdate.Enabled = True
End Sub
Private Sub Form_Load()
'自动识别路径
Adodc1.ConnectionString = "DSN=NBooks"
Adodc1.RecordSource = "select * from tslbb"
Adodc1.Refresh
End Sub
Private Sub Form_Unload(Cancel As Integer)
frm_main.Enabled = True
End Sub
Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
'回车使控件获得焦点
If KeyCode = vbKeyReturn And Index < 3 Then Text1(Index + 1).SetFocus
If KeyCode = vbKeyReturn And Index = 3 Then CmdSave.SetFocus
'按向上键使控件获得焦点
If KeyCode = vbKeyUp And Index > 3 Then Text1(Index - 1).SetFocus
End Sub
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
'按类别名称查询,并按类别编号排序
rs1.Open "select * from tslbb where 类别名称='" + TreeView1.SelectedItem.key + "'order by 类别编号", Cnn, adOpenKeyset, adLockOptimistic
If rs1.RecordCount > 0 Then
For i = 1 To 3
Text1(i).text = rs1.Fields(i) '将字段值赋给Text1控件数组
Next i
Combo1.text = rs1.Fields("级别") '赋值给combo1.text
Text2.text = rs1.Fields("类别编号")
End If
rs1.Close
End Sub
Private Sub CmdAdd_Click() '添加操作
Dim bh As Integer '定义一个整型变量
Dim lsbh As String '定义一个字符串变量
'设置本级编号和类别编号
rs1.Open "select * from tslbb where 级别='" + Combo1.text + "' order by 类别编号", Cnn, adOpenKeyset, adLockOptimistic
If rs1.RecordCount > 0 Then
If Not rs1.EOF Then rs1.MoveLast
lsbh = rs1.Fields("类别编号")
bh = Right(lsbh, Val(Combo1.text) + 1) + 1
'Right 函数返回 Variant (String),其中包含从字符串右边取出的指定数量的字符。
'Val 函数返回包含于字符串内的数字,字符串中是一个适当类型的数值。
Text1(1).text = Format(bh, String(Val(Combo1.text) + 1, "0"))
'Format 函数返回 Variant (String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。
Text1(2).text = Left(lsbh, Len(lsbh) - Len(Text1(1).text)) & Text1(1).text
'Left 函数返回 Variant (String),其中包含字符串中从左边算起指定数量的字符。
'Len 函数返回 Long,其中包含字符串内字符的数目,或是存储一变量所需的字节数。
Else
Text1(1).text = Format(1, String(Val(Combo1.text) + 1, "0"))
Text1(2).text = Text1(2).text & Format(1, String(Val(Combo1.text) + 1, "0"))
End If
rs1.Close
'设置控件有效或无效
CmdSave.Enabled = True
CmdEsc.Enabled = True
CmdAdd.Enabled = False
CmdDelete.Enabled = False
Cmdupdate.Enabled = False
Text1(3).Enabled = True
Text1(3).text = "" '清空Text1(3)
Text1(3).SetFocus 'Text1(3)获得焦点
End Sub
Private Sub CmdDelete_Click() '删除图书类别信息
Dim rs2 As New ADODB.Recordset
rs1.Open "select * from tslbb where 类别名称='" + Text1(3).text + "'order by 类别编号", Cnn
rs2.Open "select * from tslbb where 类别编号 like '" + Text1(2).text + "'+'0%' order by 类别编号 ", Cnn, adOpenKeyset, adLockOptimistic
Dim con As New ADODB.Connection
If rs2.RecordCount > 1 Then
MsgBox "请先删除其子类,再删除该父类", , "图书综合管理系统"
Else
con.ConnectionString = Cnn
With rs1
If .RecordCount > 0 Then
a = MsgBox("您确实要删除这条数据吗?", vbYesNo)
If a = vbYes Then
con.Open
con.Execute "delete from tslbb where 类别名称='" + Text1(3).text + "'"
con.Close
Adodc1.RecordSource = "select * from tslbb order by 类别编号"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
For i = 1 To 3
Text1(i).text = Adodc1.Recordset.Fields(i) '将字段值赋给Text1控件数组
Next i
Combo1.text = Adodc1.Recordset.Fields("级别")
End If
'设置按钮有效或无效
CmdSave.Enabled = False
CmdEsc.Enabled = False
CmdAdd.Enabled = True
CmdDelete.Enabled = True
End If
Else
MsgBox ("没有要删除的数据!")
End If
End With
End If
rs1.Close
rs2.Close
TreeView1.Nodes.Clear '清空TreeView中的数据
Call Tree_change '调用过程
End Sub
Private Sub CmdSave_Click() '保存图书类别信息
If Combo1.text = "" Then
MsgBox "系统不允许【级别】为空!"
Exit Sub
End If
If Text1(1).text = "" Then
MsgBox "系统不允许【本级编号】为空!"
Exit Sub
End If
If Text1(2).text = "" Then
MsgBox "系统不允许【类别编号】为空!"
Exit Sub
End If
If Text1(3).text = "" Then
MsgBox "系统不允许【类别名称】为空!"
Exit Sub
End If
Adodc2.RecordSource = "select * from tslbb where 类别编号='" + Text1(2).text + "'"
Adodc2.Refresh
If Adodc2.Recordset.RecordCount > 0 Then '修改原有数据
Cnn.Execute ("update tslbb set 类别名称='" + Text1(3).text + "' where 类别编号='" + Text1(2).text + "'")
Else
'添加图书类别信息
Adodc2.Recordset.AddNew
For i = 1 To 3
Adodc2.Recordset.Fields(i) = Trim(Text1(i).text)
Text1(i).Enabled = False
Next i
Adodc2.Recordset.Fields("级别") = Combo1.text
Adodc2.Recordset.Update '更新数据库
End If
Adodc2.Recordset.Close '关闭数据集对象
TreeView1.Nodes.Clear
Call Tree_change '调用函数
'设置控件状态
Cmdupdate.Enabled = True
CmdSave.Enabled = False
CmdEsc.Enabled = False
CmdAdd.Enabled = True
CmdDelete.Enabled = True
Combo1.Enabled = True
End Sub
Private Sub CmdEsc_Click() '取消操作
'清空Text1控件数组
For i = 1 To 3
Text1(i).text = ""
Next i
'设置控件有效或无效
Text1(3).Enabled = False
CmdSave.Enabled = False
CmdEsc.Enabled = False
CmdAdd.Enabled = True
CmdDelete.Enabled = True
Cmdupdate.Enabled = True
Combo1.Enabled = True
End Sub
Private Sub CmdExit_Click() '退出
frm_main.Enabled = True
Unload Me
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -