sql = \用户表\If txt_username <> \
Set objrs = ExecuteSQL(sql, \ Set DataGrid1.DataSource = objrs '刷新网格,显示操作后的结果 End If
If objrs.RecordCount = 0 Then MsgBox \库中没有记录!\ Exit Sub End If
If objrs.RecordCount <> 0 Then
If MsgBox(\真的要删除该级用户信息吗?\警告\ objrs.Delete
MsgBox \删除成功!\提示\ End If End If End Sub
Private Sub Form_Load()
Dim newrst As ADODB.Recordset Dim sql As String
sql = \用户表\Set newrst = select_sql(sql)
Set DataGrid1.DataSource = newrst End Sub
3.4.2 修改用户
选择“系统”->“修改用户”菜单,在窗体里输入新的用户名称和用户权限,单击“修改”按钮,系统将会修改原来用户信息。
Private Sub cmd_adduser_Click() Dim newrst As ADODB.Recordset Dim sql As String
sql = \用户表 values(\
& \ & \Set newrst = execute_sql(sql) sql = \用户表\Set newrst = select_sql(sql)
Set DataGrid1.DataSource = newrst End Sub
Private Sub cmd_cancel_Click() Unload Me End Sub
Private Sub cmd_delete_Click() Dim sql As String
sql = \用户表\If txt_username <> \
Set objrs = ExecuteSQL(sql, \ Set DataGrid1.DataSource = objrs '刷新网格,显示操作后的结果 End If
If objrs.RecordCount = 0 Then MsgBox \库中没有记录!\ Exit Sub End If
If objrs.RecordCount <> 0 Then
If MsgBox(\真的要删除该级用户信息吗?\警告\ objrs.Delete
MsgBox \删除成功!\提示\ End If End If End Sub
Private Sub Form_Load()
Dim newrst As ADODB.Recordset Dim sql As String
sql = \用户表\Set newrst = select_sql(sql)
Set DataGrid1.DataSource = newrst End Sub
3.4.3数据库备份和恢复
选择“系统”->“数据库备份和恢复”菜单,在位置文本框中输入备份或恢复的文件所在位置,单击“备份”或“恢复”按钮,数据库将备份或
恢复。
Option Explicit
Private Sub cmd_recovery_Click() If cnMod.State = adStateOpen Then
cnMod.Close '如果已连接,关掉宽 End If
cnMod.Open \server};server=HZ;uid=sa;pwd=heweiling;database=master\ '建一个连接用来获得要还原数据库的进程标识符(spid)
Dim rs As New ADODB.Recordset '该记录集保存进程ID以备操作
rs.Open \spid from sysprocesses where dbid=db_id('工资管理系统')\cnMod, adOpenDynamic, adLockPessimistic
'解释一下,这句话是为了将有关“工资管理系统”所有服务进程ID查询出来db_id是SQL中的一个函数具体语法你自己看它的帮助文件哦,这里就不赘述了 If rs.EOF = False Then rs.MoveFirst
Do While rs.EOF = True '扫描并关闭有关“工资管理系统”的服务进程
cnMod.Execute (\ 'kill 也是SQL的方法“杀”与dos下的kill类似啊,是吧,呵呵自己看看帮助文件很详尽的 rs.MoveNext Loop End If
CD.Filter = \所有文件(*.*)|*.*|备份文件(*.bak)|*.bak\ CD.InitDir = App.Path Text1.Text = CD.FileName CD.ShowOpen
Dim Mstr As String
Mstr = \恢复主要数据库?数据恢复操作将会覆盖以前的所有数据并且覆盖后无法恢复,您确定要进行恢复操作吗?\
If MsgBox(Mstr, vbYesNo + vbQuestion, \操作提示\On Error GoTo re
Label1.Caption = \正在恢复,请稍候??\
cnMod.BeginTrans '开始一个事件
cnMod.Execute (\工资管理系统 from disk='\replace\语句要是不会用,查看帮助文件
cnMod.CommitTrans '执行 Label1.Caption = \恢复成功\
MsgBox \恢复成功\提示\ Exit Sub re:
cnMod.RollbackTrans '回滚(不执行) Label1.Caption = \恢复失败\
MsgBox \恢复失败\提示\End If End Sub
Private Sub cmd_back_Click()
'下面是备份的代码,处理的比较粗糙,你自己优化了,呵呵,相信你能看懂的,我就不注释了
If cnMod.State = adStateOpen Then cnMod.Close End If
CD.Filter = \所有文件(*.*)|*.*|备份文件(*.bak)|*.bak\ CD.InitDir = App.Path CD.ShowSave
txt_weizhi = CD.FileName
cnMod.Open \server};server=HZ;uid=sa;pwd=heweiling;database=工资管理系统\
On Error GoTo back cnMod.BeginTrans
cnMod.Execute (\工资管理系统 to disk='\ cnMod.CommitTrans
MsgBox \成功地备份到\下\操作提示\
cnMod.Close Exit Sub back:
cnMod.RollbackTrans
MsgBox \备份失败\提示\ cnMod.Close End Sub