【保存版】2013年度発売全パチスロアプリ一覧(iPhone,iPad)

【Access】テスト環境・本番環境切替用アクセステーブル自動リンク。

ACCESSテーブルリンク

ACCESSでシステム構築後、
仕様変更等が入りプログラムを修正する場合、
まず、テスト環境で修正し、正しく修正が行われたことを確認後、
本番環境へ適用します。

このとき、テスト環境と本番環境のデータベースへのパスが、
違う場合、リンクテーブルの参照先を変更しなければなりません。
(リンクテーブルを使っている場合)

これを毎回するのは、面倒ですよね。

なんで、私は、この部分を自動化しています。

【使い方】
1 モジュールに記載しているグローバル定数(DBへのフルパス)を変更。
2 リンクテーブル用フォームを起動
3 実行ボタンを押下。
 (現在のリンクテーブルを全て削除し、新しいDBのテーブルを全てリンクする)

これだけですが、結構便利です。
DBへのフルパスはモジュールにもたせていますが、configテーブルに
もたすといいかもしれません。

ソース:

'テスト環境・本番環境切替メイン処理
Private Sub bt削除後リンク_Click()

On Error GoTo Err_Syori

'実行確認
If Not MsgBox("全リンクテーブルを削除し、指定テーブルへ再リンクします。よろしいですか?", 33, gvl_APPLICATION_TITLE) = 1 Then Exit Sub

Me.Visible = False

'リンクテーブル削除
If LinkTable_Delete = 0 Then Exit Sub

'リンクテーブル作成
If Table_Link = 0 Then Exit Sub

'正常終了
MsgBox "正常終了しました。", 64, gvl_APPLICATION_TITLE

DoCmd.Close acForm, Me.Form.Name
Exit Sub
Err_Syori:
Me.Visible = True
MsgBox Err.Number & ":" & Err.Description, 16, "システムエラー"
End Sub
'-----------------------------------------------------------------------------------
'リンクテーブルを作成します。
Private Function Table_Link()
Dim db As DAO.Database
Dim Mytable As DAO.TableDef
Dim str対象DBパス As String

On Error GoTo Err_Syori

Table_Link = 0 'NG

DoCmd.Hourglass True

str対象DBパス = Me.txtリンク先
Set db = DAO.DBEngine.OpenDatabase(str対象DBパス)

For Each Mytable In db.TableDefs
If Mytable.Attributes = 0 Then
'テーブルをリンク
DoCmd.TransferDatabase acLink, "Microsoft Access", str対象DBパス, acTable, Mytable.Name, Mytable.Name, False
End If
Next

DoCmd.Hourglass False

db.Close
Set db = Nothing

Table_Link = 1 'OK

Exit Function

Err_Syori:
DoCmd.Hourglass False
MsgBox Err.Number & ":" & Err.Description, 16, "システムエラー"
End Function
'-----------------------------------------------------------------------------------
Private Function LinkTable_Delete()
'リンクテーブルを削除します。
Dim db As DAO.Database
Dim MyTable As DAO.TableDef

On Error GoTo Err_Syori

LinkTable_Delete = 0 'NG

DoCmd.Hourglass True

Set db = CurrentDb

For Each MyTable In db.TableDefs
If (MyTable.Attributes And dbAttachedTable) Then
DoCmd.DeleteObject acTable, MyTable.Name
End If
DoEvents
Next

DoCmd.Hourglass False

db.Close
Set db = Nothing

LinkTable_Delete = 1 'OK

Exit Function

Err_Syori:
DoCmd.Hourglass False
MsgBox Err.Number & ":" & Err.Description, 16, "システムエラー"
End Function


備考:
gvl_APPLICATION_TITLE:アプリケーションのタイトル名
Me.txtリンク先:リンク先フルパス
DAOの参照設定が必要です。

こんな感じです。

次回、ACCESSプログラムの自動アップデートをご紹介します。(かも)

(当ブログ関連記事:カテゴリ:access)

[Google PR]

Twitterはじめました。プラプラ | Twitter

<< 【雑記】サイトの売買。これってたぶん商売になるだろう。
【雑記】ブランドという血。 >>

[関連エントリ 最新5]

[Google PR]


[最新エントリ 5]

>>トップページ
人気カテゴリ:AccessTips SQLServer CakePHP iPad
過去ログ(全記事一覧)

コメント
コメントする(お気軽にどうぞ)









この記事のトラックバックURL
トラックバック
カテゴリー
プロフィール
お問い合わせ
Powered by NINJA TOOLS
links
recent comment
  • 【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)
  • 【VAIOP】VaioXと両持ちできるものすっっごくマニアックなケース。当たり前ですが在庫限り。(笑)
    管理人 (08/04)
recent trackback
  • 【Access】2003安全でない式がブロックされていませんとセキュリティーレベル。
    awgs Foundry (10/29)
  • 【VAIOtypeP】液晶保護シートは、新車のカバーではない。レイアウト社液晶/天板保護フィルムセットRT-VP1FS1
    XMLがキライ。 (04/09)
  • Vistaから、LinkStation(NAS)にアクセスできません。
    そのほかいろいろ (09/06)