John W. Colby
jwcolby at colbyconsulting.com
Mon May 30 13:08:18 CDT 2005
For the power of a framework...
I wanted to build a little backup utility. My framework has zip / unzip
built in. The code to zip a set of files held in a table becomes:
Private Sub cmdZip_Click()
On Error GoTo Err_cmdZip_Click
Dim rst As DAO.Recordset
Dim db As DAO.Database
Dim strSQL As String
Dim lngIDBus As Long
lngIDBus = txtIDBus.Value
strSQL = "SELECT * " & _
"FROM tblBackupFile " & _
"WHERE BUF_IDBUS = " & lngIDBus
Set db = CurrentDb
Set rst = db.OpenRecordset(strSQL)
With rst
While Not .EOF
cfw.cZip.AddFileSpec !BUF_FileSpec
.MoveNext
Wend
End With
cfw.cZip.ZipFile = txtZipFileName.Value
cfw.cZip.BasePath = txtDirSpec.Value
cfw.cZip.Zip
Exit_cmdZip_Click:
On Error Resume Next
If Not (rst Is Nothing) Then rst.Close: Set rst = Nothing
If Not (db Is Nothing) Then db.Close: Set db = Nothing
Exit Sub
Err_cmdZip_Click:
MsgBox Err.Description, , "Error in Sub
Form_frmBackupSet.cmdZip_Click"
Resume Exit_cmdZip_Click
Resume 0 '.FOR TROUBLESHOOTING
End Sub
There are a pair of tables, one that allows you to select a name for the
backup set and a destination dir to place the zip file. The other is a
child that holds the names of files to include in the zip file (backup). A
form/subform allows you to create the name/dest dir and find and store the
files to zip.
The button to find the dir is:
Dim fclsFileOpen As clsFileOpen
Private Sub cmdFindDir_Click()
On Error GoTo Err_cmdFindDir_Click
Static strLastPath As String
If Len(strLastPath) = 0 Then
strLastPath = ""
End If
fclsFileOpen.GetDirectory "Select Directory to Backup To", strLastPath
txtDirSpec = fclsFileOpen.pDirectory
Me.Dirty = False
Exit_cmdFindDir_Click:
Exit Sub
Err_cmdFindDir_Click:
Select Case Err
Case 0 'insert Errors you wish to ignore here
Resume Next
Case Else 'All other errors will trap
Beep
MsgBox Err.Description, , "Error in function
Form_sfrm_ProductFiles.cmdFindDir_Click"
Resume Exit_cmdFindDir_Click
End Select
Resume 0 'FOR TROUBLESHOOTING
End Sub
The subform code:
Dim fclsFileOpen As clsFileOps
Private Sub Form_Open(Cancel As Integer)
Set fclsFileOpen = New clsFileOps
End Sub
'Comments :
'Parameters:
'Created by: Colby Consulting
'Created : 6/19/98 12:50:49 PM
Private Sub cmd_FindPCFile_Click()
On Error GoTo Err_cmd_FindPCFile_Click
Static strLastPath As String
If Len(strLastPath) = 0 Then
strLastPath = ""
End If
fclsFileOpen.FFFindFile "Select File to backup", strLastPath
txtFileSpec = fclsFileOpen.FFSpec
Me.Dirty = False
Exit_cmd_FindPCFile_Click:
Exit Sub
Err_cmd_FindPCFile_Click:
Select Case Err
Case 0 'insert Errors you wish to ignore here
Resume Next
Case Else 'All other errors will trap
Beep
MsgBox Err.Description, , "Error in function
Form_sfrm_ProductFiles.cmd_FindPCFile_Click"
Resume Exit_cmd_FindPCFile_Click
End Select
Resume 0 'FOR TROUBLESHOOTING
End Sub
All of the code to do everything are services of the framework.
John W. Colby
www.ColbyConsulting.com
Contribute your unused CPU cycles to a good cause:
http://folding.stanford.edu/