📄 frmbtypem.frm
字号:
VERSION 5.00
Begin VB.Form frmBTypeM
BackColor = &H00FFC0C0&
Caption = "图书分类"
ClientHeight = 7455
ClientLeft = 4800
ClientTop = 3015
ClientWidth = 9060
LinkTopic = "Form1"
Picture = "frmBTypeM.frx":0000
ScaleHeight = 7455
ScaleWidth = 9060
Begin VB.CommandButton cmdBack
Caption = "返回(&X)"
Height = 615
Left = 6600
TabIndex = 8
Top = 5640
Width = 1095
End
Begin VB.CommandButton cmdDel
Caption = "删除(&D)"
Height = 615
Left = 6600
TabIndex = 7
Top = 4560
Width = 1095
End
Begin VB.CommandButton cmdModi
Caption = "修改(&U)"
Height = 615
Left = 6600
TabIndex = 6
Top = 3360
Width = 1095
End
Begin VB.CommandButton cmdAdd
Caption = "添加(&A)"
Height = 615
Left = 6600
TabIndex = 5
Top = 2160
Width = 1095
End
Begin VB.ListBox List2
BackColor = &H00FFC0C0&
BeginProperty Font
Name = "宋体"
Size = 9
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 1860
ItemData = "frmBTypeM.frx":524C8
Left = 3840
List = "frmBTypeM.frx":524CA
TabIndex = 4
Top = 2520
Width = 1575
End
Begin VB.ListBox List1
BackColor = &H00FFC0C0&
BeginProperty Font
Name = "宋体"
Size = 9
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 1860
ItemData = "frmBTypeM.frx":524CC
Left = 1080
List = "frmBTypeM.frx":524CE
TabIndex = 3
Top = 2520
Width = 1575
End
Begin VB.Frame Frame2
BackColor = &H00FF8080&
Caption = "二级分类"
Height = 2415
Left = 3600
TabIndex = 2
Top = 2160
Width = 2055
End
Begin VB.Frame Frame1
BackColor = &H00FF8080&
Caption = "一级分类"
Height = 2415
Left = 840
TabIndex = 1
Top = 2160
Width = 2055
End
Begin VB.CheckBox chkAllType
BackColor = &H00FFC0C0&
Caption = "全部分类"
Height = 495
Left = 480
TabIndex = 0
Top = 960
Width = 1455
End
End
Attribute VB_Name = "frmBTypeM"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'单击CheckBox控件chkAllType时
Private Sub chkAllType_Click()
If chkAllType.Value = vbChecked Then
List1.ListIndex = -1
List2.ListIndex = -1
List1.Enabled = False
List2.Enabled = False
Else
List1.Enabled = True
List2.Enabled = True
End If
End Sub
'"添加"按钮,添加新分类
Private Sub cmdAdd_Click()
If chkAllType = vbChecked Then
frmBTypeEdit.lblUID = "" '无上级图书分类
frmBTypeEdit.txtTypeName = "" '清除frmBTypeEdit当前图书分类输入框
ElseIf List1.ListIndex >= 0 And List2.ListIndex < 0 Then
'当List1被选择,List2未选择,当前图书分类为一级,可以为该分类添加二级图书分类
frmBTypeEdit.lblUID = List1.List(List1.ListIndex)
frmBTypeEdit.txtTypeName = "" '清除frmBTypeEdit当前图书分类输入框
ElseIf List2.ListIndex >= 0 Then
'当前所选图书分类为二级分类,不能为其添加下级分类
MsgBox "此分类书目为二级分类" + vbCrLf + "不能在二级分类下面添加子分类", vbInformation, "添加分类提示"
Exit Sub
End If
IsAdd = True '设置添加按钮标志,并调用窗体frmBTypeEdit输入添加分类信息
frmBTypeEdit.Show 1
End Sub
'返回按钮
Private Sub cmdBack_Click()
Unload Me
End Sub
'"删除"按钮,删除所选择分类,若所选择的分类有下级分类或有图书基本信息,则不能删除
Private Sub cmdDel_Click()
Dim rs As New ADODB.Recordset
Dim cnn As New ADODB.Connection
Dim SQLStr As String, DelTypeName As String
Dim isDel As Integer, DelTypeID As Integer, DelUID As Integer
'如果所选分类为全部分类,则不能执行中删除操作
If chkAllType = vbChecked Then
MsgBox "此项为根结点" + vbCrLf + "不能删除根结点", vbInformation, "删除分类提示"
Exit Sub
End If
If List1.ListIndex >= 0 And List2.ListIndex < 0 Then
'如果选择的一级图书分类包含下级分类,则不能删除
SQLStr = "select * from BookType where UID="
SQLStr = SQLStr & "(select TypeId from BookType where TypeName='"
SQLStr = SQLStr & List1.List(List1.ListIndex) & "')"
'SQLStr = "select * from BookType where UID=(select TypeId from BookType"
'SQLStr = SQLStr & "where TypeName='"
'SQLStr = SQLStr & Trim(List1.List(List1.ListIndex)) & "')"
Set cnn = New ADODB.Connection '关键字New用于创建新对象cnn
cnn.ConnectionString = CONSTR '设置连接字符串的ConnectionString属性
cnn.Open
rs.Open SQLStr, cnn, adOpenDynamic, adLockOptimistic
'Set rs = SQLQuery(SQLStr) '查询选择的图书分类的下级分类
If Not rs.BOF Then
MsgBox List1.List(List1.ListIndex) + "包含下级图书分类,不能删除", vbInformation, "删除分类提示"
Exit Sub
Else
DelTypeName = List1.List(List1.ListIndex) '获取要删除的分类名称
End If
ElseIf List2.ListIndex >= 0 Then '选择的二级图书分类
DelTypeName = List2.List(List2.ListIndex)
End If
SQLStr = "select * from BookType where TypeName='" & DelTypeName & "'"
Set rs = SQLQuery(SQLStr) '查询选择的图书分类的分类号
DelTypeID = rs.Fields(0)
DelUID = rs.Fields(2)
isDel = MsgBox("是否确定要删除" + Trim(DelTypeName), vbYesNo + vbQuestion + vbDefaultButton2, "是否删除")
If isDel = vbNo Then
Exit Sub
Else
SQLStr = "select * from BookInfo where TypeId=" & Str(DelTypeID)
Set rs = SQLQuery(SQLStr)
If Not rs.BOF Then
MsgBox DelTypeName + "图书分类下还有书籍" + vbCrLf + "不能删除此分类", vbInformation, "删除分类提示"
Exit Sub
End If
SQLStr = "delete from BookType where TypeID=" & Trim(Str(DelTypeID))
SQLExt SQLStr '执行DELETE 语句
MsgBox "删除成功!", vbInformation, "删除分类提示"
'更新List1和List2的显示
SQLStr = "select * from BookType where UID=0"
AddTypeList frmBTypeM.List1, SQLStr
If DelUID > 0 Then
SQLStr = "select * from BookType where UID=" & Str(DelUID)
AddTypeList frmBTypeM.List2, SQLStr
End If
End If
End Sub
'"修改"按钮,修改当前分类信息
Private Sub cmdModi_Click()
Dim rs As New ADODB.Recordset
If chkAllType = vbChecked Then '若为全部分类
MsgBox "此分类为总分类" + vbCrLf + "不能修改总分类的名称", vbInformation, "修改分类提示"
Exit Sub
End If
If List1.ListIndex >= 0 And List2.ListIndex < 0 Then
'若所选择的分类为一级分类,则frmBTypeEdit窗体中显示的当前分类的上级分类为空
frmBTypeEdit.lblUID = ""
frmBTypeEdit.txtTypeName = List1.List(List1.ListIndex)
SQLStr = "select * from BookType where TypeName='" + Trim(frmBTypeEdit.txtTypeName) + "'"
Set rs = SQLQuery(SQLStr)
vTypeID = rs.Fields(0)
frmBTypeEdit.txtTypeID = vTypeID
frmBTypeEdit.txtTypeID.Locked = True
ElseIf List2.ListIndex >= 0 Then
'若所选择的分类为二级分类,则frmBTypeEdit窗体中显示的当前分类的上级分类
'为List1的选择项
frmBTypeEdit.lblUID = List1.List(List1.ListIndex)
frmBTypeEdit.txtTypeName = List2.List(List2.ListIndex)
SQLStr = "select * from BookType where TypeName='" + Trim(frmBTypeEdit.txtTypeName) + "'"
Set rs = SQLQuery(SQLStr)
vTypeID = rs.Fields(0)
frmBTypeEdit.txtTypeID = vTypeID
frmBTypeEdit.txtTypeID.Locked = True
End If
IsAdd = False '设置修改按钮标志,并调用窗体frmBTypeEdit输入修改当前分类信息
frmBTypeEdit.Show 1
End Sub
'窗体加载事件
Private Sub Form_Load()
'初始化一级分类ListBox控件List1,二级分类List2
Dim SQLStr As String
SQLStr = "select * from BookType where UID=0"
AddTypeList List1, SQLStr
'初始化时显示全部分类
List1.Enabled = False
List2.Enabled = False
chkAllType.Value = vbChecked
End Sub
'单击List1时,选择一级分类,则要为该一级分类在List2中添加其二级分类
Private Sub List1_Click()
Dim SQLStr As String
Dim rs As ADODB.Recordset
'为List2添加被选一级图书对应的二级图书
SQLStr = "select * from booktype where uid="
SQLStr = SQLStr & "(select typeid from booktype where typename='"
SQLStr = SQLStr & List1.List(List1.ListIndex) & "')"
Set rs = SQLQuery(SQLStr)
AddTypeList List2, SQLStr
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -