② 界面制作与实现方法
这个界面总体来说各个控件比较简单,但是作为一个添加删除管理员的操作,它已经连接到了数据库,与数据库的yonghu表相联。各个控件也与数据库中表的字段绑定。
在窗体初始化的时候要判断当前数据库表中是否有记录,如果没有记录那么有些按钮将会被设置成为失效状态,否则会出现错误。设置代码如下:
Dim provider As String
Dim datasource As String
provider = "provider=Microsoft.jet.oledb.4.0"
datasource = "data source=" & App.Path & "\DB.mdb"
With Adodc1
.Mode = adModeReadWrite
.ConnectionString = provider & ";" & datasource
.CommandType = adCmdTable
.RecordSource = "yonghu"
.Refresh
End With
Option1.Enabled = False
Option2.Enabled = False
If Adodc1.Recordset.RecordCount = 0 Then
Command2.Enabled = False
Command3.Enabled = False
Command5.Enabled = False
Command6.Enabled = False
End If
Text2.Text = Text3.Text
上一条与下一条的功能一目了然,它们可以对当前表进行上一条记录或下一条记录依次查看。当找到记录后,可以对其进行相对的删除、修改等操作。上一条记录与下一条的记录在查看时有一个判断。当表中记录移到最前面(BOF)或最后面(EOF)时,会把上一条或下一条其中的一个按钮的enable属性设置为true。即不可以前查看或向后查看。
上一条与下一条主要代码如下:
Adodc1.Recordset.MovePrevious '移动记录
Command6.Enabled = True
If Adodc1.Recordset.BOF Then
Adodc1.Recordset.MoveFirst
Command5.Enabled = False
End If
Adodc1.Recordset.MoveNext '移动记录
Command5.Enabled = True
If Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveLast
Command6.Enabled = False
End If
添加用户可以添加使用该管理软件的用户。添加的时候可以选择所添加人物的级别。软件默认为两个级别:管理员、普通用户。管理员拥有对此软件管理操作等一切的权力。普通用户,只有普通的查看、查询、备份、添加等权力。没有对记录删除等权力。在添加用户时你可以选择一个且必须选择一个。然后输入此用户的用户名和密码即可!
添加用户主要代码:
If Command1.Caption = "添加" Then
Command2.Enabled = False
Command5.Enabled = False
Command6.Enabled = False
Command1.Caption = "确定"
Command3.Caption = "取消"
Adodc1.Recordset.AddNew
Option1.Enabled = True
Option2.Enabled = True
Text1.Enabled = True
Text2.Enabled = True
Text3.Enabled = True
Text2.Text = ""
ElseIf Text1.Text = "" Then
MsgBox "用户名不能为空!", 48, "提示"
ElseIf Text2.Text = "" Then
MsgBox "密码不能为空!", 48, "提示"
ElseIf Text2.Text <> Text3.Text Then
MsgBox "密码两次需一致!", 48, "提示"
ElseIf Text4.Text = "" Then
MsgBox "请选择所建用户类型!", 48, "提示"
Else
Command2.Enabled = True
Command3.Enabled = True
Command5.Enabled = True
Command6.Enabled = True
Command3.Caption = "编辑"
Command1.Caption = "添加"
Adodc1.Recordset.Update
Text1.Enabled = False
Text2.Enabled = False
Text3.Enabled = False
Text4.Enabled = False
Option1.Value = False
Option2.Value = False
Option1.Enabled = False
Option2.Enabled = False
End If
删除操作可以把当前记录删除掉。一经删除即不可以在恢复。所以在操作前要想好。
删除操作部分代码:
If Adodc1.Recordset.RecordCount = 1 Then
Command2.Enabled = False
End If
If (MsgBox("你真的想删除当前记录吗?", vbOKCancel, "系统提示")) = vbOK Then
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveFirst
Adodc1.Refresh
End If
编辑操作可以对当前所选择的用户进行编辑,可以修改其用户名与密码。当当前用户感觉自己用户名称或密码有泄露时,可以进行修改。修改记录即更新表中的某一条记录。
编辑操作主要代码如下:
Command2.Enabled = False
Text1.Enabled = True
Text2.Enabled = True
Text3.Enabled = True
Text4.Enabled = True
Option1.Enabled = True
Option2.Enabled = True
Command1.Caption = "确定"
ElseIf Command3.Caption = "取消" Then
Command3.Caption = "编辑"
Command1.Caption = "添加"
Command2.Enabled = True
Command5.Enabled = True
Command6.Enabled = True
Text2.Text = Text3.Text
Text1.Enabled = False
Text2.Enabled = False
Text3.Enabled = False
Text4.Enabled = False
Option1.Value = False
Option2.Value = False
Option1.Enabled = False
Option2.Enabled = False
End If
4.3.2 公寓设置
公寓设置可以说是本程序中一关键部分。因为所有的设置都在此进行。包括公寓添加、修改、删除。寝室的添加、修改、删除以及班级的添加、修改和删除操作。只有正确的对这些设置进行添加修改,才能输入正确的记录。这里主要涉及到的问题是datagrid的显示,以及treeview及时形成新的结构。还有一些就是对表记录的复杂操作。
在点击sstab各版的时候,要在这时重新生成寝室设置中的树型结构,
Select Case PreviousTab
Case 0
Call startree1
Case 1
Combo1.Clear
Dim I As Integer
I = 1
If Adodc1.Recordset.RecordCount <> 0 Then
Adodc1.Recordset.MoveFirst
Do While I < Adodc1.Recordset.RecordCount
Combo1.AddItem (Adodc1.Recordset.Fields("公寓名称"))
Adodc1.Recordset.MoveNext
I = I + 1
Loop
End If
Call startree1
Case 2
Call startree1
End Select
End Sub
(1) 公寓设置
① 公寓设置效果图
图4.4公寓设置
② 界面制作与实现方法
在这个界面中主要用到了一个Sstab控件与一个显示表中内容的Datagrid控件。以及起到美观作用的Frame控件。
在右下角的文本框中可以输入想要添加的公寓名称。然后点击添加即可完成添加操作。Datagrid中会立即刷新显示更新内容。要修改某条记录时,要先对所要修改的记录进行选择,确认选择后,点击下面的修改按钮,会在下面的文本中显示出所要修改公寓的名称,此时即可输入要修改的名字。然后点击更新就会完成此操作。Datagrid也会即时更新其内容。删除操作更为简单,选择想要删除的公寓名称,点击删除,确认后完成此操作。但是删除后不会影响其它表中的数据。其它表的有关此公寓的信息还会存在。
在进行所有操作前,先要确定数据库已连接。
在添加前要判断所写公寓名称是否正确,即是否输入名称,该记录不能为空,不为空则对数据库表进行查找,判断当前输入记录是否已在表中存在,如果已存在,则会给出提示,不存在,添加成功。
Adodc1.Recordset.Find "公寓名称='" & Text2.Text & "'"
If Adodc1.Recordset.EOF = False Then
MsgBox "此公寓已存在", , "提示"
Adodc1.Recordset.MoveFirst
Exit Sub
End If
Text3.Text = ""
If Text2.Text = "" Then
MsgBox "输入所要添加公寓的名称", , "提示"
Exit Sub
End If
添加:
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("公寓名称") = Text2.Text
Adodc1.Recordset.Update
Adodc1.RecordSource = "gongyu"
Text2.Text = ""
Set DataGrid2.datasource = Adodc1
DataGrid2.Refresh
修改公寓名称:
If Text3.Text = "" Then
MsgBox "选择要修改的公寓", , "提示"
Exit Sub
End If
If Command12.Caption = "修改" Then
Text2.Text = Text3.Text
Label6.Caption = "输入想要修改的公寓名称"
Command12.Caption = "更新"
Command3.Enabled = False
Command7.Enabled = False
ElseIf Command12.Caption = "更新" Then
Command3.Enabled = True
Command7.Enabled = True
Label6.Caption = "输入想要添加的公寓名称"
Adodc1.Recordset.Fields("公寓名称") = Text2.Text
Adodc1.Recordset.Update
Adodc2.Recordset.ActiveConnection.Execute "update qinshi set 公寓名称='" & Text2.Text & "' where 公寓名称='" & Trim(Text3.Text) & "'"
Adodc2.Recordset.Update
Command12.Caption = "修改"
End If
Set DataGrid2.datasource = Adodc1
DataGrid2.Refresh
Adodc5.Recordset.Update
Set main.DataGrid1.datasource = Adodc5
main.DataGrid1.Refresh
删除公寓名称
If Text3.Text = "" Then
MsgBox "选择所要删除公寓的名称", , "提示"
Exit Sub
End If
If (MsgBox("你真的想删除公寓名称为 " & Text3.Text & " 的记录吗?", vbOKCancel, "系统提示")) = vbOK Then
Adodc1.Recordset.Delete
Adodc1.Recordset.Update
End If
Text3.Text = ""
Set DataGrid2.datasource = Adodc1
DataGrid2.Refresh
(2) 寝室设置
①寝室设置效果图
图4.5寝室设置
②界面制作与实现方法
此界面实现相对比公寓设置来说相对复杂一些。用到的控件主要是Sstab与Treeview。但是在程序方面比较复杂。
在添加一个寝室前先要选择所要添加寝室所在的公寓。这个公寓可以点击下面的树中的节点,也可以在列表框中选择。树中的节点在点击后会把父节点显示在选择公寓后面的列表框中,而选中的节点会出现在寝室名称里。你也可以自己进行添写,确认公寓后即可添加完成了。添加后会把Treeview重新刷新一下。以显示更新后的记录。
添加源码:
Adodc1.Refresh
Adodc1.Recordset.Find "公寓名称='" & Combo1.Text & "'"
If Adodc1.Recordset.EOF = True Then
MsgBox "此公寓不存在", , "提示"
Adodc1.Recordset.MoveFirst
Exit Sub
End If
If Combo1.Text = "" Or Text1.Text = "" Then
MsgBox "请输入所要添加的寝室及其所属公寓", , "提示"
Exit Sub
End If
With Adodc2
.Recordset.AddNew
.Recordset.Fields(0).Value = Combo1.Text
.Recordset.Fields(1).Value = Text1.Text
.Recordset.Update
End With
Combo1.Text = ""
Text1.Text = ""
Call startree1
修改操作可以把当前选中的寝室进行名称修改与其所属公寓进行修改。当要对名称进行修改时,先要选择所要修改的寝室名,选择后会在寝室名称里显示出来,把当前寝室名称改成要修改的寝室名称,然后点击修改即完成名称修改操作。当要对当前寝室的所属公寓进行修改时,需要先选择所要修改的寝室,然后在上面的公寓名称后填写所要修改的寝室名称。点击修改后完成此操作。但是这种操作不是常见。
修改源码:
Adodc1.Refresh
Adodc1.Recordset.Find "公寓名称='" & Combo1.Text & "'"
If Adodc1.Recordset.EOF = True Then
MsgBox "此公寓不存在", , "提示"
Adodc1.Recordset.MoveFirst
Exit Sub
End If
Dim sql As String
On Error Resume Next
If Combo1.Text = "" Or Text1.Text = "" Then
MsgBox "请在下面选择所要修改的寝室", , "提示"
Exit Sub
End If
'sql = "select * form qinshi where 公寓名称='" & Trim(Combo1.Text) & "' and 寝室='" & Trim(Text1.Text) & "'"
Adodc2.Recordset.ActiveConnection.Execute "update qinshi set 寝室='" & Text1.Text & "',公寓名称='" & Trim(Combo1.Text) & "'where 寝室='" & Trim(Text6.Text) & "'and 公寓名称='" & Trim(Text7.Text) & "'"
Adodc2.Recordset.Update
Combo1.Text = ""
Text1.Text = ""
Call startree1
删除操作可以删除掉当前树型显示中的任何一个子节点,也就是这个树型节点中的寝室名称,注意的是,删除后这个记录只在qinshi表中删除,其相关记录不会被删除掉的,如果想删除,还需要人工操作。实现的方法主要是对qinshi表操作,先对其进行查询,查询当前想要被删除的表是否存在,如果不存在,则给出提示,如果存在这条记录,则在表中把它删除掉,删除后调用生成树过程,把当前寝室设置中的树型结构重新生成,更新记录。实现的部分代码如下所示:
If Combo1.Text = "" Or Text1.Text = "" Or Combo1.Text = "公寓管理系统" Then
MsgBox "选择所要删除的寝室", , "提示"
Exit Sub
End If
If (MsgBox("你真的想删除 " & Combo1.Text & " " & "寝室为" & Text1.Text & " 的记录吗?", vbOKCancel, "系统提示")) = vbOK Then
Adodc2.Refresh
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>