| MSDE FunClub |
|
最終更新日 : 2000/11/03 |
|
Microsoft Data Engine FunClub
|
Since 2000.11.03
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(下巻) |
|
【第22章429p 〜 431p掲載】 |
'
'***************************************************************
'
' 【Accessデータベースの中にあるテーブルをSQLserverに転送します】
'
' このプログラムを、Accessのモジュールシートに読み込んで実行します
'
' (株)日本技術ソフト開発 堀川 明
' http://www.horikawa.ne.jp/msde/
'
'***************************************************************
'
Option Compare Database
Option Explicit
'
'接続用ログイン情報の定義
'
Const ServerName = "Server_Name" '接続先データベースサーバー名
Const LoginName = "Login_Name" 'ログイン名
Const PassWord = "Pass_Word" 'そのパスワード
Const DBName = "DBName" '接続先データベースの名前
'
Function TRANS()
Dim dbnm$, odbc$, tbnm$, m%, i%
'ODBC接続用文字列の定義
dbnm$ = "ODBC;uid=" & LoginName & ";pwd=" & PassWord & ";driver={SQL Server};" & _
"server=" & ServerName & ";database=" & DBName & ";DSN=''"
'
'Accessのバージョンによって、カナ文字が半角から全角に変わりました
'引数の値が微妙に違います。注意しましょう。
'
Select Case SysCmd(acSysCmdAccessVer)
Case "7.0" 'Access95 ですか?
odbc$ = "調べていません。Access97と同じでしょう"
Case "8.0" 'Access97 ですか?
odbc$ = "ODBC 【注意:半角カナ文字のデータベースです】"
Case "9.0" 'Access2000 ですか?
odbc$ = "ODBC データベース"
End Select
'テーブル個数(但しアクセスのシステムテーブルを含む)
m = CurrentDb.TableDefs.Count
'TableDefsの添字は 0 から
For i = 0 To m - 1
'テーブルの名前を取得
tbnm$ = CurrentDb.TableDefs(i).Name
'アクセスのシステムテーブルを除く
If Left(tbnm$, 4) <> "MSys" Then
'転送しますか?
If MsgBox(tbnm$ & vbCrLf & "このテーブルを転送しますか?", _
vbYesNo, "転送しますか?") = vbYes Then
'Access -> SQLServer 転送処理を行う
DoCmd.TransferDatabase acExport, odbc$, dbnm$, acTable, _
tbnm$, tbnm$, False
End If
End If
Next
MsgBox "転送処理が終了しました", , "終了"
End Function