📄 frmbinfom.frm
字号:
VERSION 5.00
Object = "{67397AA1-7FB1-11D0-B148-00A0C922E820}#6.0#0"; "msadodc.ocx"
Object = "{CDE57A40-8B86-11D0-B3C6-00A0C90AEA82}#1.0#0"; "msdatgrd.ocx"
Begin VB.Form frmBInfoM
BackColor = &H00E0E0E0&
Caption = "图书基本信息管理"
ClientHeight = 7320
ClientLeft = 3720
ClientTop = 2805
ClientWidth = 10320
LinkTopic = "Form1"
ScaleHeight = 7320
ScaleWidth = 10320
Begin VB.Frame Frame1
BackColor = &H00E0E0E0&
Caption = "选择图书分类"
Height = 2055
Left = 360
TabIndex = 5
Top = 240
Width = 9135
Begin VB.ListBox List2
BeginProperty Font
Name = "宋体"
Size = 9
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 1500
Left = 4920
TabIndex = 8
Top = 240
Width = 1575
End
Begin VB.ListBox List1
BeginProperty Font
Name = "宋体"
Size = 9
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 1500
Left = 2520
TabIndex = 7
Top = 240
Width = 1575
End
Begin VB.CheckBox chkAllType
BackColor = &H00E0E0E0&
Caption = "全部分类"
Height = 495
Left = 240
TabIndex = 6
Top = 480
Width = 1215
End
End
Begin VB.CommandButton cmdBack
Caption = "返回(&X)"
Height = 495
Left = 6960
TabIndex = 4
Top = 6120
Width = 975
End
Begin VB.CommandButton cmdDel
Caption = "删除(&D)"
Height = 495
Left = 5640
TabIndex = 3
Top = 6120
Width = 855
End
Begin VB.CommandButton cmdModi
Caption = "修改(&M)"
Height = 495
Left = 4320
TabIndex = 2
Top = 6120
Width = 855
End
Begin VB.CommandButton cmdAdd
Caption = "添加(&A)"
Height = 495
Left = 2880
TabIndex = 1
Top = 6120
Width = 855
End
Begin MSDataGridLib.DataGrid gBookInfo
Bindings = "frmBInfoM.frx":0000
Height = 3015
Left = 360
TabIndex = 0
Top = 2760
Width = 9135
_ExtentX = 16113
_ExtentY = 5318
_Version = 393216
BackColor = 16761024
HeadLines = 1
RowHeight = 16
BeginProperty HeadFont {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ColumnCount = 2
BeginProperty Column00
DataField = ""
Caption = ""
BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED}
Type = 0
Format = ""
HaveTrueFalseNull= 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 2052
SubFormatType = 0
EndProperty
EndProperty
BeginProperty Column01
DataField = ""
Caption = ""
BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED}
Type = 0
Format = ""
HaveTrueFalseNull= 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 2052
SubFormatType = 0
EndProperty
EndProperty
SplitCount = 1
BeginProperty Split0
BeginProperty Column00
EndProperty
BeginProperty Column01
EndProperty
EndProperty
End
Begin MSAdodcLib.Adodc agBInfo
Height = 615
Left = 240
Top = 6000
Visible = 0 'False
Width = 2415
_ExtentX = 4260
_ExtentY = 1085
ConnectMode = 0
CursorLocation = 3
IsolationLevel = -1
ConnectionTimeout= 15
CommandTimeout = 30
CursorType = 3
LockType = 3
CommandType = 8
CursorOptions = 0
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 = "frmBInfoM"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'定义查询条件变量condition
Dim condition As String
Private Sub chkAllType_Click()
If chkAllType.Value = 0 Then
List1.Enabled = True
List2.Enabled = True
If List2.ListIndex >= 0 Then
cmdAdd.Enabled = True '如果选择二级分类,则可以添加图书信息
cmdModi.Enabled = True '如果选择二级分类,则可以修改图书信息
End If
End If
If chkAllType.Value = 1 Then
cmdAdd.Enabled = False '如果选择全部分类,则不能添加图书信息
cmdModi.Enabled = False '如果选择全部分类,则不能修改图书信息
List1.Enabled = False
List2.Enabled = False
condition = ""
Call AddGridBinfo '为gBookInfo添加图书信息
End If
End Sub
'单击"添加"按钮,在gBookInfo内添加新图书的基本信息
Private Sub cmdAdd_Click()
'给图书信息编辑窗体frmBInfoEdit赋值
frmBInfoEdit.txtBNo = ""
frmBInfoEdit.txtBNo.Locked = False '允许编辑图书编号文本框
frmBInfoEdit.txtBName = ""
frmBInfoEdit.txtBType = List1.List(List1.ListIndex)
frmBInfoEdit.txtBType.Locked = True
frmBInfoEdit.txtSubBType = List2.List(List2.ListIndex)
frmBInfoEdit.txtSubBType.Locked = True
frmBInfoEdit.txtAuthor = ""
frmBInfoEdit.txtPublisher = ""
frmBInfoEdit.txtPrice = "0"
frmBInfoEdit.txtMemo = ""
IsAdd = True
frmBInfoEdit.Show 1 '启动图书信息编辑窗体
agBInfo.Refresh '刷新agBinfo控件
Call AddGridBinfo 'AddGridBInfo刷新gBookInfo的图书信息
End Sub
'返回按钮
Private Sub cmdBack_Click()
Unload Me
End Sub
'单击"删除"按钮,删除gBookInfo所选择的图书记录
Private Sub cmdDel_Click()
Dim isDel As Integer
Dim SQLStr As String
If agBInfo.Recordset.BOF Or agBInfo.Recordset.EOF Then
MsgBox "请选择一条图书记录", vbInformation, "信息提示"
Else
isDel = MsgBox("是否删除所选择的记录", vbYesNo + vbQuestion + vbDefaultButton2, "是否删除")
If isDel = vbYes Then
SQLStr = "delete from BookInfo where BookNo='" + Trim(gBookInfo.Columns(0)) + "'"
SQLExt SQLStr '执行delete语句
MsgBox "删除成功!", vbInformation, "删除提示"
End If
End If
agBInfo.Refresh '刷新adoBInfo控件
Call AddGridBinfo 'AddGridBInfo刷新gBookInfo的图书信息
End Sub
'单击"修改"按钮,在frmBInfoEdit窗体中显示gBookInfo中所选记录的各项值
Private Sub cmdModi_Click()
'如果没记录的话,不能进行修改
If agBInfo.Recordset.BOF Or agBInfo.Recordset.EOF Then
MsgBox "请选择一条图书记录", vbInformation, "修改提示"
Exit Sub
End If
'给图书编辑窗口赋值
frmBInfoEdit.txtBNo = Trim(agBInfo.Recordset.Fields(0))
frmBInfoEdit.txtBNo.Locked = True '禁止编辑图书编号文本框
frmBInfoEdit.txtBName = Trim(agBInfo.Recordset.Fields(1))
frmBInfoEdit.txtBType = List1.List(List1.ListIndex)
frmBInfoEdit.txtBType.Locked = True
frmBInfoEdit.txtSubBType = Trim(agBInfo.Recordset.Fields(2))
frmBInfoEdit.txtSubBType.Locked = True
frmBInfoEdit.txtAuthor = Trim(agBInfo.Recordset.Fields(3))
frmBInfoEdit.txtPublisher = Trim(agBInfo.Recordset.Fields(4))
frmBInfoEdit.txtPrice = Trim(Str(agBInfo.Recordset.Fields(5)))
'agBInfo的"图书说明"列为空,则txtMemo清空
If IsNull(Trim(agBInfo.Recordset.Fields(6))) Then
frmBInfoEdit.txtMemo = ""
Else
frmBInfoEdit.txtMemo = Trim(agBInfo.Recordset.Fields(6))
End If
IsAdd = False
frmBInfoEdit.Show 1 '启动编辑窗体
agBInfo.Refresh '刷新adoBInfo控件
Call AddGridBinfo 'AddGridBInfo刷新gBookInfo的图书信息
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
condition = "" '给condition初始化
Call AddGridBinfo '调用AddGridBInfo过程
End Sub
'DataGrid 数据网格控件加载数据
Private Sub AddGridBinfo()
Dim cnn As New ADODB.Connection
Set cnn = New ADODB.Connection '关键字New用于创建新对象cnn
cnn.ConnectionString = CONSTR '设置连接字符串的ConnectionString属性
cnn.Open
agBInfo.ConnectionString = CONSTR '设置ADO控件AGBinfo的连接字符串
Dim tmpRecordSource As String '设置数据源
tmpRecordSource = "select i.BookNo as 图书编号,i.BookName as 图书名称,t.TypeName as 分类名称,i.Author as 作者,i.Publisher as 出版社,i.price as 图书价格,i.Memo as 图书说明 from BookInfo i,BookType t where i.TypeID=t.TypeID " + condition + " order by i.BookNo"
'tmpRecordSource = "select i.BookNo as 图书编号,i.BookName as 图书名称," + "t.TypeName as 分类名称,i.Author as 作者," + "i.Publisher as 出版社," + "i.Price as 图书价格,i.Memo as 图书说明" + "from BookInfo i,BookType t" + "where i.TypeID=t.TypeID ORDER BY i.BookNo"
agBInfo.RecordSource = tmpRecordSource '设置ADO控件的记录源
agBInfo.Refresh
With gBookInfo '设置DataGrid控件每列显示的宽度
.Columns(0).Width = 800
.Columns(1).Width = 1600
.Columns(2).Width = 1000
.Columns(3).Width = 700
.Columns(4).Width = 1500
.Columns(5).Width = 800
.Columns(6).Width = 1600
End With
End Sub
'单击List1的数据项,使List2列出该数据对应的二级分类,以下为List1鼠标单击事件代码
Private Sub List1_Click()
Dim SQLStr As String
Dim rs As New ADODB.Recordset
'Dim cnn As New ADODB.Connection
'将List1中已选的一级分类下的二级图书添加List2中
'SQLStr = "select * from BookType where UID =(select typeid from BookType where TypeName='List1.List(List1.ListIndex)')"
'SQLStr = "select * from "
SQLStr = "select * from BookType where UID="
SQLStr = SQLStr & "(select TypeID from BookType where TypeName='"
SQLStr = SQLStr & List1.List(List1.ListIndex) & "')"
'Call DBConnect
'Set cnn = New ADODB.Connection '关键字New用于创建新对象cnn
'cnn.ConnectionString = CONSTR '设置连接字符串的ConnectionString属性
'cnn.Open
'rs.Open SQLStr, cnn, adOpenDynamic, adLockOptimistic
Set rs = SQLQuery(SQLStr)
'If rs.Fields(2) <> "select TypeID from BookType where TypeName='" & List1.List(List1.ListIndex) & "'" Then
' cmdModi.Enabled = True
' cmdAdd.Enabled = False
' Exit Sub
'End If
condition = " and t.UID=" & rs.Fields(2)
'If condition <> "" Then
AddTypeList List2, SQLStr
'End If
'condition = "and t.UID=" & rs.Fields(2)
Call AddGridBinfo 'AddGridBInfo刷新gBookInfo的图书信息
cmdAdd.Enabled = False '如果选择全部分类,则不能添加图书信息
cmdModi.Enabled = True '如果选择一级分类,则可以修改图书信息
End Sub
'单击List2数据项,gBookInfo列出List2数据项为二级分类名的图书信息
Private Sub List2_Click()
Dim SQLStr As String
Dim rs As ADODB.Recordset
'在List2选择二级图书类别
SQLStr = "select * from booktype where typename='"
SQLStr = SQLStr & List2.List(List2.ListIndex) & "'"
Set rs = SQLQuery(SQLStr)
condition = "and i.TypeID=" & rs.Fields(0)
Call AddGridBinfo '为gBookInfo添加图书信息
cmdAdd.Enabled = True '如果选择二级分类,则可以添加图书信息
cmdModi.Enabled = True '如果选择二级分类,则可以修改图书信息
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -