
Option Compare Database
Option Explicit
Private Sub バックアップ開始_Click()
Dim strBaseName As String
Dim strFileName As String
If IsNull(Me.バックアップ日付) = True Or Len(Me.バックアップ日付) = 0 Then
MsgBox "バックアップ日付をyyyymmdd形式で入力してください。", vbOKOnly + vbCritical, ""
Me.バックアップ日付.SetFocus
Exit Sub
End If
strBaseName = "C:\Data\在庫管理.mdb"
strFileName = "C:\Backup\" & Format(Me.日付, "yyyymmdd") & "StockData.mdb"
If Dir(strFileName) <> "" Then
If MsgBox(strFileName & Chr(13) & "は存在します。" & Chr(13) & _
"上書しますか?", vbYesNo + vbQuestion, "") = vbNo Then
Exit Sub
End If
End If
On Error GoTo LBL_ERROR
FileCopy strBaseName, strFileName
MsgBox "バックアップが完了しました。", vbInformation, ""
LBL_EXIT:
Exit Sub
LBL_ERROR:
Resume LBL_EXIT
End Sub
上記のVBAでバックアップを行いたいのですが、フォルダ等も設定しているの実行されません。上記の文に間違いがあるのでしょうか?
ソフトはAccessです。
No.3ベストアンサー
- 回答日時:
s_husky です。
面目ないです。
質問者と同じミスをしていました。
Private Sub バックアップ開始_Click()
On Error GoTo Err_バックアップ開始_Click
Dim isClick As Boolean
Dim Answer As Integer
If Len(Me.バックアップ日付 & "") = 0 Then
Message "バックアップ日付をyyyymmdd形式で入力してください。"
Me.バックアップ日付.SetFocus
Else
Answer = vbYes
If FileExists(strFileName) Then
Answer = Verify(strFileName & "は存在します。上書しますか?")
End If
If Answer = vbYes Then
FileCopy "C:\Data\在庫管理.mdb", _
"C:\Backup\" & Format(Me.日付, "yyyymmdd") & "StockData.mdb"
Message "バックアップが完了しました。"
End If
End If
Exit_バックアップ開始_Click:
Exit Sub
Err_バックアップ開始_Click:
ErrMsg Err.Description & "(バックアップ開始_Click)"
Resume Exit_バックアップ開始_Click
End Sub
No.4
- 回答日時:
FileCopy は 開かれている mdb のコピーはできません。
もし、"C:\Data\在庫管理.mdb" が
今、開いているこのファイル、
または、開かれている他のファイルなら
FileSystemObject の CopyFile メソッドを使えばコピーすることができます。
http://msdn.microsoft.com/library/ja/default.asp …
参考URL:http://msdn.microsoft.com/library/ja/default.asp …
No.2
- 回答日時:
全体のプロシージャの構造がいけません。
次は、私流の書き方です。
1、エラートラップは、全体に次のような基本形にするのが望ましいです。
2、Exit Sub は、<Exit_プロシージャ>以外では使わないようにします。
3、ヌルチェックは、Len(コントロール & "")で十分です。
4、コードは目でなぞったら意味が判るのがいいです。
チクッと、自前のプロシージャの基本形を作ったがいいです。
質問は、全体を正常化してからがいいです。
Private Sub バックアップ開始_Click()
On Error GoTo Err_バックアップ開始_Click
Dim Answer As Integer
If Len(Me.バックアップ日付 & "") = 0 Then
Message "バックアップ日付をyyyymmdd形式で入力してください。"
Me.バックアップ日付.SetFocus
ElseIf FileExists(strFileName) Then
Answer = Verify(strFileName & "は存在します。上書しますか?")
If Answer = vbYes Then
FileCopy "C:\Data\在庫管理.mdb", _
"C:\Backup\" & Format(Me.日付, "yyyymmdd") & "StockData.mdb"
Message "バックアップが完了しました。"
End If
End If
Exit_バックアップ開始_Click:
Exit Sub
Err_バックアップ開始_Click:
ErrMsg Err.Description & "(バックアップ開始_Click)"
Resume Exit_バックアップ開始_Click
End Sub

No.1
- 回答日時:
「実行されません」とは何を指して言っているのでしょうか。
----------------------------------------------
strBaseName にも strFileName にもファイル名がフルパスで入っているのに
FileCopy strBaseName, strFileName
の行を実行してもファイルがコピーされない
----------------------------------------------
ってことでしょうか?
ステップ実行で処理の過程を 1行ずつ確認してみましたか?
エラーが発生した場合のジャンプ先 "LBL_ERROR:" で何もしないですぐに "LBL_EXIT:" に移動させちゃってるんでエラーに気づいてないってことはありませんか?
On Error GoTo LBL_ERROR の行をコメントアウトして試してみるとか、
LBL_ERROR:
Debug.Print Err.Description
Resume LBL_EXIT
ってしてみてエラーを確認してみてはどうでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLServerのトランザクションロ...
-
ログ ファイルはいっぱいです。...
-
postgresql についてです
-
PCが悪くなって新しいPCにSSMS...
-
MS-Accessのエクスポートで異常...
-
復旧中のデータベースについて
-
Accessdでの「トランザクション...
-
エクセルのフィルタ抽出が固まる
-
videopad 無料版 アンインストール
-
データベースの圧縮について
-
データベースのアタッチができ...
-
警察はスマホに保存した動画や...
-
一つのトランザクションでSELEC...
-
復元に異常に時間がかかる
-
文字コードについて
-
ファイルの存在チェック
-
復元を取り消したい
-
DATファイルをEXCELで開きたい
-
マスタメンテとは?
-
accessの処理が遅い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
期限切れのバックアップの削除
-
BACKUP DATABASE とINSERTが同...
-
バックアップの容量と時間の見積り
-
ログファイルの圧縮がされずに...
-
バックアップについて
-
SQLServerのトランザクションロ...
-
トランザクションログバックア...
-
トランザクションログの切り捨...
-
ログ ファイルはいっぱいです。...
-
SQLデータを保存して書き戻したい
-
MySQLでバックアップなしデータ...
-
LDFファイルからのロールフォワ...
-
MS-アクセスで作ったファイルの...
-
SQLサーバーのDBをArc...
-
SQL-Server トランザクションロ...
-
こんにちは。
-
XamppでインストールしたMySQL...
-
mysqldumpの方法以外でDBをコ...
-
AccessからMSDEへの移行
-
WindowsFirewallのログの保存先...
おすすめ情報