
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ログファイルの圧縮がされずに...
-
BACKUP DATABASE とINSERTが同...
-
期限切れのバックアップの削除
-
トランザクションログの切り捨...
-
DATファイルをEXCELで開きたい
-
【DB】同じトランザクション内...
-
SQL Server Management Studio ...
-
TPSとは・・・
-
accessの処理が遅い
-
復旧中のデータベースについて
-
VSAM,QSAM,BSAM,BPAM,BDAM
-
一つのテーブルだけを復元(リス...
-
MS-Accessのエクスポートで異常...
-
mdfファイルの残骸について
-
tempdb の適切なサイズ
-
dbFailOnError とは?
-
Accessdでの「トランザクション...
-
復元に異常に時間がかかる
-
データベースのアタッチができ...
-
OracleのROWIDについて…
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
期限切れのバックアップの削除
-
ログファイルの圧縮がされずに...
-
BACKUP DATABASE とINSERTが同...
-
ログ ファイルはいっぱいです。...
-
バックアップの容量と時間の見積り
-
SQLServerのトランザクションロ...
-
トランザクションログの切り捨...
-
トランザクションログバックア...
-
oracleとSQL Server比較検証
-
こんにちは。
-
SQLServer7.0のLDF圧縮
-
SQLサーバーのDBをArc...
-
バックアップについて
-
SQLデータを保存して書き戻したい
-
制御ファイルの多重化の意味に...
-
Oracle9i(Win)バックアップすべ...
-
警察はスマホに保存した動画や...
-
【DB】同じトランザクション内...
-
DATファイルをEXCELで開きたい
-
postgresql についてです
おすすめ情報