⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 restore.frm

📁 小型酒店管理系统
💻 FRM
字号:
VERSION 5.00
Begin VB.Form RESTORE 
   Caption         =   "数据恢复"
   ClientHeight    =   4035
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   6720
   Icon            =   "RESTORE.frx":0000
   LinkTopic       =   "Form1"
   ScaleHeight     =   4035
   ScaleWidth      =   6720
   StartUpPosition =   1  '所有者中心
   Begin VB.CommandButton Command2 
      Caption         =   "取 消"
      Height          =   375
      Left            =   5520
      TabIndex        =   8
      Top             =   960
      Width           =   975
   End
   Begin VB.CommandButton Command1 
      Caption         =   "恢 复"
      Height          =   375
      Left            =   5520
      TabIndex        =   7
      Top             =   360
      Width           =   975
   End
   Begin VB.FileListBox File1 
      Height          =   2610
      Left            =   2880
      Pattern         =   "*.HR_"
      TabIndex        =   2
      Top             =   1080
      Width           =   2295
   End
   Begin VB.DirListBox Dir1 
      Height          =   2610
      Left            =   240
      TabIndex        =   1
      Top             =   1080
      Width           =   2295
   End
   Begin VB.DriveListBox Drive1 
      Height          =   300
      Left            =   1200
      TabIndex        =   0
      Top             =   480
      Width           =   4095
   End
   Begin VB.Frame Frame1 
      Caption         =   "文件夹"
      Height          =   3015
      Left            =   120
      TabIndex        =   4
      Top             =   840
      Width           =   2535
   End
   Begin VB.Frame Frame2 
      Caption         =   "文件列表"
      Height          =   3015
      Left            =   2760
      TabIndex        =   5
      Top             =   840
      Width           =   2535
   End
   Begin VB.Label Label2 
      BackStyle       =   0  'Transparent
      Caption         =   "驱动器:"
      Height          =   255
      Left            =   240
      TabIndex        =   6
      Top             =   540
      Width           =   855
   End
   Begin VB.Label Label1 
      BackStyle       =   0  'Transparent
      Caption         =   "请选择有效数据备份文件:"
      Height          =   255
      Left            =   240
      TabIndex        =   3
      Top             =   120
      Width           =   2535
   End
End
Attribute VB_Name = "RESTORE"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Public DATBAK As Database
Public RECBACKUP As Recordset
Dim HFFILE As String
Public SHFFILE As String
Public Function BFILEEXISTS(SFILE As String) As Boolean
    If Dir$(SFILE) <> "" Then BFILEEXISTS = True Else BFILEEXISTS = False
End Function

Private Sub Command1_Click()
    On Error GoTo LOCALERR
    If Trim(File1.FileName) = "" Then
       MsgBox "请选择有效数据备份文件*.HR_", vbCritical, "提示信息"
       Else
         RECBACKUP.FindFirst ("ID=10")
         If Not RECBACKUP.NoMatch Then
            HFFILE = Left(RECBACKUP("FILE"), Len(RECBACKUP("FILE")) - 5)
         End If
         If UCase(Left(File1.FileName, Len(File1.FileName) - 5)) <> UCase(HFFILE) Then
            MsgBox "不是本系统备份数据!", vbCritical, "错误"
            Exit Sub
         End If
         ChDrive Left(App.Path, 2)
         ChDir App.Path
         If UCase(Left(File1.Path, 1)) <> "A" Then
            If BFILEEXISTS("RESTORE.WC_") Then Kill "RESTORE.WC*"
            If BFILEEXISTS("RESTORE.BAT") Then Kill "RESTORE.BAT"
            NFILE = FreeFile
            Open App.Path & "\RESTORE.BAT" For Output As #NFILE
            If Right(File1.Path, 1) = "\" Then
               Print #NFILE, "EXTRACT /Y /A /E /L BACKUP " & File1.Path & File1.FileName & ">RESTORE.WC1"
               Else
                 Print #NFILE, "EXTRACT /Y /A /E /L BACKUP " & File1.Path & "\" & File1.FileName & ">RESTORE.WC1"
            End If
            Print #NFILE, "DIR BACKUP>RESTORE.WC_"
            Close #NFILE
            Shell "RESTORE.BAT", vbHide
            Load REJDT1
            REJDT1.Show vbModal
            If BFILEEXISTS("RESTORE.WC_") Then Kill "RESTORE.WC*"
            If BFILEEXISTS("RESTORE.BAT") Then Kill "RESTORE.BAT"
            MsgBox "恭喜!您的数据已安全恢复...", vbInformation + vbOKOnly, "提示信息"
            Unload Me
            Else
              If Not BFILEEXISTS("A:\BACKDISK.INF") Then
                 MsgBox "非本系统备份数据,请换盘再试!", vbCritical, "错误"
                 Exit Sub
              End If
              NFILE = FreeFile
              Open "A:\BACKDISK.INF" For Input As #NFILE
              Line Input #NFILE, STRDISKS
              Line Input #NFILE, STRTOTALS
              Close #NFILE
              INTDISKS = CInt(Right(STRDISKS, Len(STRDISKS) - 6))
              INTTOTALS = CInt(Right(STRTOTALS, Len(STRTOTALS) - 12))
              DISKS = 1
              Do While DISKS <= INTTOTALS
COPY:
                 NFILE = FreeFile
                 Open "A:\BACKDISK.INF" For Input As #NFILE
                 Line Input #NFILE, STRDISKS
                 Close #NFILE
                 INTDISKS = CInt(Right(STRDISKS, Len(STRDISKS) - 6))
                 If INTDISKS <> DISKS Then
                    SFFP = MsgBox("Please Insert DISK:#" & CStr(DISKS), vbInformation + vbOKCancel, "提示信息")
                    If SFFP = vbOK Then GoTo COPY Else Exit Sub
                 End If
                 If DISKS = 1 Then
                    SHFFILE = Dir$("A:\*.HR_")
                 End If
                 Load REJDT2
                 REJDT2.Show vbModal
                 DISKS = DISKS + 1
              Loop
              If BFILEEXISTS("RESTORE.WC_") Then Kill "RESTORE.WC*"
              If BFILEEXISTS("RESTORE.BAT") Then Kill "RESTORE.BAT"
              NFILE = FreeFile
              Open App.Path & "\RESTORE.BAT" For Output As #NFILE
              Print #NFILE, "EXTRACT /Y /A /E /L BACKUP " & App.Path & "\" & SHFFILE & ">RESTORE.WC1"
              Print #NFILE, "DIR BACKUP>RESTORE.WC_"
              Close #NFILE
              Shell "RESTORE.BAT", vbHide
              Load REJDT1
              REJDT1.Show vbModal
              If BFILEEXISTS("RESTORE.WC_") Then Kill "RESTORE.WC*"
              If BFILEEXISTS("RESTORE.BAT") Then Kill "RESTORE.BAT"
              If BFILEEXISTS(App.Path & "\*.HR_") Then Kill "*.HR_"
              If BFILEEXISTS(App.Path & "\BACKUP\*.HR_") Then Kill App.Path & "\BACKUP\*.HR_"
              MsgBox "恭喜!您的数据已安全恢复...", vbInformation + vbOKOnly, "提示信息"
              Unload Me
         End If
    End If
    GoTo LOCALEXIT
    
LOCALERR:
    strmsg = CStr(Err.Number) & "-" & Err.Description
    SFXX = MsgBox(strmsg, vbCritical + vbRetryCancel, "错误")
    If SFXX = vbRetry Then
       Resume
       Else
         Unload RESTORE
    End If

LOCALEXIT:
    
    
End Sub

Private Sub Command2_Click()
    Unload Me
End Sub

Private Sub Dir1_Change()
    On Error GoTo LOCALERR
    File1.Path = Dir1.Path
    GoTo LOCALEXIT
    
LOCALERR:
    If Err.Number = 68 Then
       MsgBox "磁盘驱动器设备不能用,请换盘再试", vbCritical, "错误"
       Resume
    End If
    strmsg = CStr(Err.Number) & "-" & Err.Description
    SFXX = MsgBox(strmsg, vbCritical + vbAbortRetryIgnore, "错误")
    If SFXX = vbRetry Then
       Resume
       Else
         Unload RESTORE
    End If

LOCALEXIT:

End Sub

Private Sub Drive1_Change()
    On Error GoTo LOCALERR
    Dir1.Path = Drive1.Drive
    File1.Path = Dir1.Path
    GoTo LOCALEXIT
    
LOCALERR:
    If Err.Number = 68 Then
       MsgBox "磁盘驱动器设备不能用,请换盘再试", vbCritical, "错误"
       Resume
    End If
    strmsg = CStr(Err.Number) & "-" & Err.Description
    SFXX = MsgBox(strmsg, vbCritical + vbAbortRetryIgnore, "错误")
    If SFXX = vbRetry Then
       Resume
       Else
         Unload RESTORE
    End If
    

LOCALEXIT:

End Sub

Private Sub Form_Load()
    Set DATBAK = OpenDatabase(App.Path & "\BACKUP.MDB")
    Set RECBACKUP = DATBAK.OpenRecordset("BACKUP", dbOpenDynaset)

End Sub

Private Sub Form_Unload(Cancel As Integer)
    DATBAK.Close
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -