一定期間更新がないため広告を表示しています
スポンサーサイト
- 2022/06/17
- -
- -
- -
- 記事URL https://plus-sys.jugem.jp/?eid=
Twitterはじめました。プラプラ | Twitter
【Access】実行中のmdb(自分自身)をバックアップコピーする方法。
- 2009/12/25
- AccessTips
- comments(5)
- trackbacks(0)
- 記事URL https://plus-sys.jugem.jp/?eid=213
はじめに。。。
*************************************
この記事は実行中のmdbをコピーするというちょっと危険な内容です。
シチュエーションによってはファイルが壊れてしまう場合もあるかもしれません。
自己責任でお願いします。
*************************************
と、前置きしたところで本題へ。
ACCESSでシステムを作るとなると、
プログラム用MDBとデータベースを分けるのが一般的です。
しかし、スタンドアロンで使うちょっとしたツールでは、
ひとつのmdb内にプログラムとデータを持たせることがあります。
この場合、mdbはどのようにバックアップすればよいのでしょうか?
VBA上から通常ファイルコピー時に使用する FileCopyメソッドを使用すると、
「70:書き込みできません。」というエラーが発生します。
自分自身をコピーすることはできないようです。
そこで、VBSCRIPTを使います。VBAからVBSCRIPTを呼出しVBSCRIPTからコピーします。
【検証環境】
Access:Access2003 SP3
OS:XP SP3
サンプルソースは以下のとおり。
【ソース】
Private Function fnc_データベースバックアップ()
'データベースバックアップ
On Error GoTo Err_Syori
Dim FSO As Object
Dim strCopyMoto As String
Dim strCopySaki_FileName As String
Dim strCopySaki As String
Set FSO = CreateObject("Scripting.FileSystemObject")
fnc_データベースバックアップ = 0 'NG
'コピー元フルパス
strCopyMoto = CurrentProject.FullName
'コピー先ファイル名
strCopySaki_FileName = Mid(Application.CurrentProject.Name, 1, Len(Application.CurrentProject.Name) - 4)
strCopySaki_FileName = strCopySaki_FileName & "_BACKUP.mdb"
'コピー先フルパス
strCopySaki = CurrentProject.Path & "¥" & strCopySaki_FileName
'ファイルコピー
FSO.CopyFile strCopyMoto, strCopySaki
Set FSO = Nothing
MsgBox "データベースをバックアップしました。ファイル名:" & strCopySaki_FileName, vbInformation, "バックアップ処理"
fnc_データベースバックアップ = 1 'OK
Exit Function
Err_Syori:
MsgBox Err.Number & ":" & Err.Description, vbCritical, "バックアップ処理"
End Function
【組み込み方法】
とりあえず、フォームを1個作ってそのフォームモジュールに上記ソースを貼り付けます。
次にフォーム上にコマンドボタンを設置しボタンのクリック時イベントに、
call fnc_データベースバックアップ
と記述し、バックアップ処理を呼び出して下さい。
【動作イメージ】
コマンドボタンをクリックするとmdbのあるフォルダ内に、
そのmdbをリネーム(_BACKUPをつける)してコピーします。
例えば、「秘密の人事考課資料.mdb」ファイルは、
「秘密の人事考課資料_BACKUP.mdb」としてコピーされます。
何気に便利ですよ。不具合等あれば教えて下さい。
「秘密の人事考課資料」のネーミングセンスについての意見は不要です。(笑)
>>仕事の現場で即使える! Accessデータベース作成入門
>>Accessマクロ&VBAのプログラミングのツボとコツがゼッタイにわかる本
>>Accessクエリ&フォーム&レポート辞典―2010/2007対応 (Office2010 Dictionary Series)
Twitterはじめました。プラプラ | Twitter
スポンサーサイト
- 2022/06/17
- -
- -
- -
- 記事URL https://plus-sys.jugem.jp/?eid=
Twitterはじめました。プラプラ | Twitter
[関連エントリ 最新5]-
[Google PR]
[最新エントリ 5]-
- コメント
- Application.CompactRepairのほうが最適かもできてよいのでは?
-
- a
- 2010/01/29 1:04 PM
- >aさん
コメントありがとうございます。CompactRepairを使ってみたのですが、ダメでした。
helpによると、「このメソッドを呼び出すとファイルが排他的に開かれるので、
ソース ファイルがカレント データベースではなく、また別のユーザーが開いている
ファイルでないことが必要です」とのこと。
今回の場合は自分自身のコピーなので使えませんでした。
これが使えるとバックアップ&最適化が一発でできて非常に便利だったのですが。
情報ありがとうございました。 -
- 管理人
- 2010/01/29 2:29 PM
- おかげさまで
排他によって とん挫していたことが実現できました。
ありがとうございます(スペシャル感謝) -
- akio
- 2010/08/12 12:25 PM
- >akio さま
お役に立てたようでよかったです。
コメントありがとうございました。
-
- 管理人
- 2010/08/12 11:15 PM
- はじめまして。
コピー元フルパス
strCopyMoto = CurrentProject.FullName
'コピー先ファイル名
strCopySaki_FileName = Mid(Application.CurrentProject.Name, 1, Len(Application.CurrentProject.Name) - 4)
strCopySaki_FileName = strCopySaki_FileName & "_BACKUP.mdb"
'コピー先フルパス
strCopySaki = CurrentProject.Path & "¥" & strCopySaki_FileName
'ファイルコピー
FSO.CopyFile strCopyMoto, strCopySaki
初心者です。
フルパスとかの書き方がわかりません。
具体的に書いていただくと助かります。
お手すきの時にでもお願いします。 -
- 亀
- 2016/02/06 2:50 AM
- コメントする(お気軽にどうぞ)
- この記事のトラックバックURL
- トラックバック
- カテゴリー
-
- Vista (15)
- AccessTips (74)
- 雑記 (68)
- セキュリティー (23)
- おもしろいサービス (5)
- tool (12)
- あまっちゃお (4)
- コンピュータ (66)
- CakePHP (25)
- VAIOTypeP[バイオタイプピー] (12)
- SQLServer (25)
- iPad (36)
- Apple Watch (5)
- AWS認定 (1)
- Azure (4)
- e-mobile (8)
- iOSアプリ (18)
- iPhone (2)
- iPhoneX (2)
- ipod touch (3)
- kindle (18)
- Monaca (1)
- Nexus7 (11)
- VAIO PRO (1)
- VAIO X[バイオ エックス] (1)
- VAIO Z (5)
- Windows10 (1)
- Windows8 (7)
- Windows9 (1)
- XPERIA Z1 (1)
- XperiaZ (6)
- 【全記事一覧】 (1)
- おすすめ本まとめ (2)
- クラウド (1)
- セール (3)
- デジモノ (24)
- 本(BOOK) (9)
- 腕時計 (1)
- プロフィール
- links
- recent comment
-
- 【Access】コンボボックス対応版。超簡単な帳票フォームでの矢印上下キー行移動。
⇒ 山田 裕樹 (04/28) - 【Access】vbaでhmacが正しく計算できた!!
⇒ まさ (06/01) - 【Access】AccessReportMailメール送信時のポートを25から587へ
⇒ わら (05/31) - 【SQLServer】超シンプル!再帰CTE(共通テーブル式)で連続データを作成する。
⇒ sazi (09/08) - 【あまっちゃお】Amazon商品検索「あまっちゃお」プロジェクト始動。Ver00-06-00 β
⇒ カメちゃん (07/31) - 【Access】あれ?DoCmd.RunCommand acCmdSaveRecordの内部仕様が変わった?
⇒ 花姉 (03/17) - 【Access】実行中のmdb(自分自身)をバックアップコピーする方法。
⇒ 亀 (02/06) - 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
⇒ 管理人 (01/31) - 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
⇒ あ (01/31) - 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
⇒ K (11/13)
- 【Access】コンボボックス対応版。超簡単な帳票フォームでの矢印上下キー行移動。
- recent trackback
-
- 【Access】2003安全でない式がブロックされていませんとセキュリティーレベル。
⇒ awgs Foundry (10/29) - 【VAIOtypeP】液晶保護シートは、新車のカバーではない。レイアウト社液晶/天板保護フィルムセットRT-VP1FS1
⇒ XMLがキライ。 (04/09) - Vistaから、LinkStation(NAS)にアクセスできません。
⇒ そのほかいろいろ (09/06)
- 【Access】2003安全でない式がブロックされていませんとセキュリティーレベル。
- sponsored links