AccessVBA バックアップ画面

AccessVBA開発

Option Compare Database

Private Sub Form_Open(Cancel As Integer)
FormSizeSquare
Me.PictureType = 0
Me.Picture = BgImageDataPath
‘フォルダの場所の規定値を表示
Me.txtフォルダパス.Value = “C:\Users\golive\Desktop\Access_BackUp”

‘バックアップ履歴のリストを表示
Me.バックアップ履歴リスト.ColumnCount = 3
Me.バックアップ履歴リスト.RowSourceType = “Table/Query”
Me.バックアップ履歴リスト.RowSource = “tbバックアップ履歴”
End Sub

Private Sub TOPへ戻るボタン_Click()
Application.Echo False ‘画面の描画を止める
OpenMain
CloseForm (“fmバックアップ”)
Application.Echo True ‘画面の描画を行う
End Sub
———————————————————————————————-
Private Sub バックアップ処理ボタン_Click()

On Error GoTo err_Shori:

‘今日の日付でファイル名作成
Dim FileName As String
FileName = Format(Now, “yyyymmdd_hhnn”) & “_backup.accdb”

‘フォルダの場所をフォームより取得
Dim FolderPath As String
FolderPath = Me.txtフォルダパス.Value

‘バックアップ処理
Dim BU As Boolean
BU = BackUpFile(FolderPath, FileName)
‘バックアップ処理をキャンセルする場合
If Not BU Then
Exit Sub
End If

‘バックアップ作成ボタン押下時点での時間を取得
Dim UpdateTime As String
UpdateTime = Format(Now, “yyyy/mm/dd_hh:nn”)

‘バックアップ履歴を残す(tbバックアップにデータ追加処理)

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.Open “tbバックアップ履歴”, cn, adOpenKeyset, adLockOptimistic
‘RS.MoveLast
‘レコード件数の抽出
Dim I As Long, j As Long, k As String, No As String
I = rs.RecordCount
I = Nz(I, “0”)
‘自動連番の表示桁数を取得
For j = 1 To 8
k = k + “0”
Next j
‘番号の更新
I = I + 1

‘振番
No = Format(CInt(I), k)
With rs
.AddNew
.Fields(0).Value = No
.Fields(1).Value = UpdateTime
.Fields(2).Value = FileName
.Update
.MoveNext
End With
MsgBox “バックアップデータの更新履歴を追加しました。”

‘終了処理
err_Exit:
Exit Sub

‘エラー処理
err_Shori:
MsgBox Err.Description
Err.Clear
Resume err_Exit:

End Sub

———————————————————————————————-
Private Sub 更新ボタン_Click()
Me.バックアップ履歴リスト.RowSource = “tbバックアップ履歴”
End Sub
———————————————————————————————-
Private Sub 参照ボタン_Click()
Me.txtフォルダパス.Value = FDFolderPicker

End Sub

タイトルとURLをコピーしました