frmSys.frm
Upload User: djzm888
Upload Date: 2013-02-15
Package Size: 867k
Code Size: 13k
Category:

Other Databases

Development Platform:

Visual Basic

  1. VERSION 5.00
  2. Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0"; "COMCTL32.OCX"
  3. Begin VB.Form frmSys 
  4.    BorderStyle     =   3  'Fixed Dialog
  5.    Caption         =   "系统数据库管理"
  6.    ClientHeight    =   3690
  7.    ClientLeft      =   45
  8.    ClientTop       =   330
  9.    ClientWidth     =   6225
  10.    BeginProperty Font 
  11.       Name            =   "宋体"
  12.       Size            =   10.5
  13.       Charset         =   134
  14.       Weight          =   400
  15.       Underline       =   0   'False
  16.       Italic          =   0   'False
  17.       Strikethrough   =   0   'False
  18.    EndProperty
  19.    Icon            =   "frmSys.frx":0000
  20.    LinkTopic       =   "Form1"
  21.    MaxButton       =   0   'False
  22.    MinButton       =   0   'False
  23.    ScaleHeight     =   3690
  24.    ScaleWidth      =   6225
  25.    ShowInTaskbar   =   0   'False
  26.    StartUpPosition =   1  '所有者中心
  27.    Begin VB.CommandButton cmdSys 
  28.       Height          =   525
  29.       Index           =   1
  30.       Left            =   3517
  31.       Picture         =   "frmSys.frx":000C
  32.       Style           =   1  'Graphical
  33.       TabIndex        =   12
  34.       Top             =   390
  35.       Width           =   1830
  36.    End
  37.    Begin VB.CommandButton cmdSys 
  38.       Height          =   525
  39.       Index           =   0
  40.       Left            =   877
  41.       Picture         =   "frmSys.frx":232C
  42.       Style           =   1  'Graphical
  43.       TabIndex        =   11
  44.       Top             =   390
  45.       Width           =   1830
  46.    End
  47.    Begin VB.CommandButton cmdSys 
  48.       Height          =   525
  49.       Index           =   2
  50.       Left            =   3517
  51.       Picture         =   "frmSys.frx":4365
  52.       Style           =   1  'Graphical
  53.       TabIndex        =   10
  54.       Top             =   1357
  55.       Width           =   1830
  56.    End
  57.    Begin VB.CommandButton cmdSys 
  58.       Height          =   525
  59.       Index           =   4
  60.       Left            =   3517
  61.       Picture         =   "frmSys.frx":675A
  62.       Style           =   1  'Graphical
  63.       TabIndex        =   9
  64.       Top             =   2325
  65.       Width           =   1830
  66.    End
  67.    Begin VB.CommandButton cmdSys 
  68.       Height          =   525
  69.       Index           =   5
  70.       Left            =   877
  71.       Picture         =   "frmSys.frx":8B51
  72.       Style           =   1  'Graphical
  73.       TabIndex        =   7
  74.       Top             =   2325
  75.       Width           =   1830
  76.    End
  77.    Begin ComctlLib.StatusBar stbMain 
  78.       Align           =   2  'Align Bottom
  79.       Height          =   405
  80.       Left            =   0
  81.       TabIndex        =   6
  82.       Top             =   3285
  83.       Width           =   6225
  84.       _ExtentX        =   10980
  85.       _ExtentY        =   714
  86.       SimpleText      =   ""
  87.       _Version        =   327682
  88.       BeginProperty Panels {0713E89E-850A-101B-AFC0-4210102A8DA7} 
  89.          NumPanels       =   1
  90.          BeginProperty Panel1 {0713E89F-850A-101B-AFC0-4210102A8DA7} 
  91.             AutoSize        =   1
  92.             Object.Width           =   10927
  93.             Text            =   ""
  94.             TextSave        =   ""
  95.             Key             =   ""
  96.             Object.Tag             =   ""
  97.             Object.ToolTipText     =   "提示"
  98.          EndProperty
  99.       EndProperty
  100.    End
  101.    Begin VB.CommandButton cmdSys 
  102.       BackColor       =   &H00C0C0C0&
  103.       Height          =   525
  104.       Index           =   3
  105.       Left            =   877
  106.       Picture         =   "frmSys.frx":AB59
  107.       Style           =   1  'Graphical
  108.       TabIndex        =   0
  109.       Top             =   1357
  110.       Width           =   1830
  111.    End
  112.    Begin VB.Label lblMsg 
  113.       AutoSize        =   -1  'True
  114.       Caption         =   "缩小系统数据库的大小,提高系统的运行速度(可经常使用)"
  115.       Height          =   210
  116.       Index           =   5
  117.       Left            =   1020
  118.       TabIndex        =   8
  119.       Top             =   2865
  120.       Visible         =   0   'False
  121.       Width           =   5355
  122.    End
  123.    Begin VB.Label lblMsg 
  124.       AutoSize        =   -1  'True
  125.       Caption         =   "返回主界面"
  126.       Height          =   210
  127.       Index           =   4
  128.       Left            =   3225
  129.       TabIndex        =   5
  130.       Top             =   4125
  131.       Visible         =   0   'False
  132.       Width           =   1050
  133.    End
  134.    Begin VB.Label lblMsg 
  135.       Caption         =   "删除在选定时间之前的过期信息(注意:应先作好备份!!)"
  136.       Height          =   210
  137.       Index           =   3
  138.       Left            =   585
  139.       TabIndex        =   4
  140.       Top             =   5175
  141.       Visible         =   0   'False
  142.       Width           =   11130
  143.    End
  144.    Begin VB.Label lblMsg 
  145.       AutoSize        =   -1  'True
  146.       Caption         =   "清空所有考勤的数据.(尤可在备份后,用于新季度的开始.)"
  147.       Height          =   210
  148.       Index           =   2
  149.       Left            =   705
  150.       TabIndex        =   3
  151.       Top             =   4575
  152.       Visible         =   0   'False
  153.       Width           =   5355
  154.    End
  155.    Begin VB.Label lblMsg 
  156.       AutoSize        =   -1  'True
  157.       Caption         =   "备份数据库(应经常性使用!)"
  158.       Height          =   210
  159.       Index           =   0
  160.       Left            =   2355
  161.       TabIndex        =   2
  162.       Top             =   3570
  163.       Visible         =   0   'False
  164.       Width           =   2625
  165.    End
  166.    Begin VB.Label lblMsg 
  167.       AutoSize        =   -1  'True
  168.       Caption         =   "初始化系统数据库!(注意:所有用户数据都将丢失!!)"
  169.       Height          =   210
  170.       Index           =   1
  171.       Left            =   1140
  172.       TabIndex        =   1
  173.       Top             =   3285
  174.       Visible         =   0   'False
  175.       Width           =   4830
  176.    End
  177. End
  178. Attribute VB_Name = "frmSys"
  179. Attribute VB_GlobalNameSpace = False
  180. Attribute VB_Creatable = False
  181. Attribute VB_PredeclaredId = True
  182. Attribute VB_Exposed = False
  183. Option Explicit
  184. Const mCopy = 0
  185. Const mEmpty = 1
  186. Const mDetailEmpty = 2
  187. Const mClearOld = 3
  188. Const mReturn = 4
  189. Const mCompress = 5
  190. Const mCRLF = vbCrLf & vbCrLf
  191. Const mEMPTYDATABASE = "Empty.mdb"
  192. Dim mMyAppPath As String
  193. Private Sub cmdSys_Click(Index As Integer)
  194.     Select Case Index
  195.         Case mCopy
  196.             BackDatabase
  197.         Case mEmpty
  198.             IniDatabase
  199.         Case mDetailEmpty
  200.             DetailEmpty
  201.         Case mClearOld
  202.             ClearOld
  203.         Case mReturn
  204.             Unload Me
  205.         Case mCompress
  206.             CompressDatabase
  207.     End Select
  208. End Sub
  209. Private Sub ClearOld()
  210.     Dim Sql As String
  211.     Dim isTrans As Boolean
  212.     
  213.     Dim UserDate As Date
  214.     Dim strDate As String
  215.     Dim Fr As frmCalendar
  216.     Set Fr = New frmCalendar
  217.     UserDate = Date
  218.     With cmdSys(mClearOld)
  219.         Fr.Top = Me.Top + .Top + .Height
  220.         Fr.Left = Me.Left + .Left + .Width - Fr.Width
  221.         '.Show 1
  222.     End With
  223.     If Fr.GetDate(UserDate) Then
  224.         strDate = Format(UserDate, "yyyy-mm-dd")
  225.     End If
  226.     On Error GoTo ClearErr
  227.     If MsgBox("真的要删除" & Format(strDate, "yyyy年mm月dd日") _
  228.         & "以前的所有考勤记录吗?" _
  229.         , vbExclamation + vbYesNo + _
  230.         vbDefaultButton2, gTitle) = vbNo Then Exit Sub
  231.     BeginTrans
  232.     isTrans = True
  233.     Sql = " delete * from " & "KqHistory" _
  234.         & " Where KqDate<=#" & strDate & "#"
  235.     gDataBase.Execute Sql
  236.     
  237.     Sql = " delete * from " & "Leave" _
  238.         & " Where EndDate<=#" & strDate & "#"
  239.     gDataBase.Execute Sql
  240.     
  241.     Sql = "Delete * from Absent " _
  242.         & " Where EndDate<=#" & strDate & "#"
  243.     gDataBase.Execute Sql
  244.     CommitTrans
  245.     isTrans = False
  246.     
  247.     MsgBox "删除过期信息成功!", vbInformation, gTitle
  248.     
  249.     Exit Sub
  250. ClearErr:
  251.     If isTrans Then Rollback
  252.     MsgBox Err.Description, vbExclamation, gTitle
  253.     Err.Clear
  254. End Sub
  255. Private Sub DetailEmpty()
  256.     Dim Sql As String
  257.     Dim isTrans As Boolean
  258.     
  259.     If MsgBox("注意操作危险,此举将清空数据库所有考勤记录!!!" & _
  260.         mCRLF & "您真的要进行此操作吗? " _
  261.         , vbExclamation + vbYesNo + vbDefaultButton2, _
  262.         gTitle) = vbNo Then Exit Sub
  263.     On Error GoTo EmptyErr
  264.     
  265.     BeginTrans
  266.     isTrans = True
  267.     Sql = " delete * from " & "KqHistory"
  268.     gDataBase.Execute Sql
  269.     Sql = " delete * from " & "Leave"
  270.     gDataBase.Execute Sql
  271.     Sql = "DElete * from Absent"
  272.     gDataBase.Execute Sql
  273.     
  274.     CommitTrans
  275.     isTrans = False
  276.     MsgBox "清空考勤记录成功!", vbInformation, "提示"
  277.     Exit Sub
  278. EmptyErr:
  279.     If isTrans Then Rollback
  280.     MsgBox Err.Description, vbExclamation, gTitle
  281.     Err.Clear
  282. End Sub
  283. Private Sub CompressDatabase()
  284.     If Not ClearDelFlag Then Exit Sub
  285.     Dim FileName As String
  286.     Dim FileNew As String
  287.     Dim Info As String
  288.     Dim bIsTrue As Boolean
  289.     
  290.     gDataBase.Close
  291.     FileName = gMainDbName
  292.     FileNew = mMyAppPath & "NewKq.mdb"
  293.     bIsTrue = ComPactData(FileName, FileNew)
  294.     If bIsTrue Then
  295.         Kill FileName
  296.         Name FileNew As FileName
  297.         MsgBox "压缩数据库成功!", vbInformation, gTitle
  298.     End If
  299.     OpenData
  300. End Sub
  301. Public Function ClearDelFlag() As Boolean
  302.     Dim Sql As String
  303.     Dim isTrans As Boolean
  304.     Dim MyTab As TableDef
  305.     On Error GoTo DelErr
  306.     BeginTrans
  307.     isTrans = True
  308.     
  309.     For Each MyTab In gDataBase.TableDefs
  310.         
  311.         If MyTab.Attributes = 0 Then
  312.             Sql = "delete * from " & MyTab.Name _
  313.                 & " Where F_DelFlag=" & gTRUE
  314.             gDataBase.Execute Sql
  315.         End If
  316.     Next
  317.     CommitTrans
  318.     ClearDelFlag = True
  319.     isTrans = False
  320.     Exit Function
  321. DelErr:
  322.     If isTrans Then Rollback
  323.     MsgBox Err.Description, vbExclamation, gTitle
  324.     ClearDelFlag = False
  325.     Err.Clear
  326. End Function
  327. Private Function ComPactData(SourceName As String, NewName As String) As Boolean
  328.     On Error GoTo Err_Compact
  329.         If Dir(NewName) <> "" Then Kill NewName
  330.         DBEngine.CompactDatabase SourceName, NewName, , , ";pwd=" & gSTRPWD
  331.         ComPactData = True
  332.         Exit Function
  333. Err_Compact:
  334.     MsgBox Err.Description
  335.     ComPactData = False
  336.     Err.Clear
  337. End Function
  338. Private Sub cmdSys_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
  339.     stbMain.Panels(1).Text = lblMsg(Index)
  340.     cmdSys(Index).ToolTipText = lblMsg(Index)
  341. End Sub
  342. Private Sub SetstbMain(Index As Integer, strText As String)
  343.     stbMain.Panels(Index).Text = strText
  344. End Sub
  345. Private Sub BackDatabase()
  346.     Dim FileName As String
  347.     Dim FileBack As String
  348.     Dim Info As String
  349.     
  350.     gDataBase.Close
  351.     
  352.     FileName = gMainDbName
  353.     FileBack = mMyAppPath & "Kq.Abk"
  354.     Info = "正在备份数据库" & FileName
  355.     BackupDatabase FileName, FileBack, Info
  356.     MsgBox "备份数据库成功!", vbInformation, gTitle
  357.     OpenData
  358. End Sub
  359. Private Sub BackupDatabase(SourceName As String, BackupName As String, Info As String)
  360. '备份数据库
  361.     On Error Resume Next
  362.     SetstbMain 1, Info & "..."
  363.     If Dir(BackupName) <> "" Then Kill BackupName
  364.     FileCopy SourceName, BackupName
  365.     On Error GoTo 0
  366.     SetstbMain 1, ""
  367. End Sub
  368. Private Sub IniDatabase()
  369.     If MsgBox("注意操作危险,将清空数据库所有用户数据!!!" & _
  370.             mCRLF & "您真的要进行此操作吗?", vbExclamation + vbYesNo + vbDefaultButton2, _
  371.             "清空数据库") = vbNo Then Exit Sub
  372.     If Dir(mMyAppPath & mEMPTYDATABASE) = "" Then
  373.         MsgBox "系统初始化数据库空库丢失!", vbExclamation, "出错"
  374.         Exit Sub
  375.     End If
  376.     
  377.     On Error Resume Next
  378.     gDataBase.Close
  379.     Set gDataBase = OpenDatabase(mMyAppPath & mEMPTYDATABASE, False, False, ";pwd=" & gSTRPWD)
  380.     If Err = 3031 Then
  381.         MsgBox "数据库 " & mMyAppPath & mEMPTYDATABASE & " 的密码不符!", vbCritical, "出错"
  382.         Set gDataBase = OpenDatabase(gMainDbName, False, False, ";pwd=" & gSTRPWD)
  383.         Exit Sub
  384.     ElseIf Err <> 0 Then
  385.         MsgBox Err.Description
  386.         Exit Sub
  387.     End If
  388.     On Error GoTo 0
  389.     gDataBase.Close
  390.     On Error Resume Next
  391.     FileCopy mMyAppPath & mEMPTYDATABASE, gMainDbName
  392.     If Err = 70 Then
  393.         Err = 0
  394.         MsgBox "有其他工作站正在使用本系统数据库!" & mCRLF & "请在其他时间再使用本功能!", vbExclamation, "资源冲突"
  395.         Set gDataBase = OpenDatabase(gMainDbName, False, False, ";pwd=" & gSTRPWD)
  396.         Exit Sub
  397.     End If
  398.     On Error GoTo 0
  399.     Set gDataBase = OpenDatabase(gMainDbName, False, False, ";pwd=" & gSTRPWD)
  400.     MsgBox "初始化数据库成功!", vbInformation, gTitle
  401. End Sub
  402. Private Sub OpenData()
  403.     Set gDataBase = OpenDatabase(gMainDbName, False, False, ";pwd=" & gSTRPWD)
  404. End Sub
  405. Private Sub Form_Load()
  406.     mMyAppPath = App.Path & "Data"
  407. End Sub