[pgsql-jp: 36147] Re: MSAccessからのDB移行
    Tsugawa
    tsugawa @ just-web.co.jp
       
    2005年 10月 14日 (金) 18:06:08 JST
    
    
  
津川 と申します。
以下はVBAなので、本MLとは少し主旨が違いますが、
結構こういった要望はあるのかな?と思いましてご参考に・・・
AccessとPostgreSQLがODBC接続出来ている様であればですが。
※実験環境は
    クライアント XP Pro Access97 
    サーバー   PostgreSQLはREDHAT9+PostgreSQL7.3系
                  Windows2003+PostgreSQL8.0.3
PostgreSQL側にDBを作成します。
Access側で
1.適当なフォームを作成
2.コマンドボタンを作成
3.クリックのイベントプロシージャに以下を貼り付けて
 実行してみてください。
Private Sub コマンド1_Click()
'Access97以降はDAOの参照設定が必要です。
'ODBC接続でインポートします。
'   ※ODBCドライバがインストールされている必要があります。
Dim DBS As DAO.Database
Dim TDF As DAO.TableDef
Dim Str_ODBC As String
'***********ODBC接文字列の作成**************************
    Str_ODBC = "ODBC;"
    Str_ODBC = Str_ODBC & "DRIVER={PostgreSQL};"    '<--ドライバー名
    Str_ODBC = Str_ODBC & "DATABASE=***DB NAME***;" '<--データーベース名
    Str_ODBC = Str_ODBC & "SERVER=***SERVER NAME***;" '<--サーバー名を入力
    Str_ODBC = Str_ODBC & "PORT=5432;"              '<--ポートの設定
    Str_ODBC = Str_ODBC & "UID=postgres;"          '<--テーブル作成権限のあるユーザ
    Str_ODBC = Str_ODBC & "PWD=******;"         '<--パスワード
    Str_ODBC = Str_ODBC & "READONLY=0;"         '以降は便宜必要であれば設定してください。
    Str_ODBC = Str_ODBC & "PROTOCOL=6.4;"
    Str_ODBC = Str_ODBC & "FAKEOIDINDEX=0;"
    Str_ODBC = Str_ODBC & "SHOWOIDCOLUMN=0;"
    Str_ODBC = Str_ODBC & "ROWVERSIONING=0;"
    Str_ODBC = Str_ODBC & "SHOWSYSTEMTABLES=0;"
    Str_ODBC = Str_ODBC & "CONNSETTINGS="
'
'**********************************************
Set DBS = CurrentDb         '<--Accessのデーターベースを指定。今開いているDBを指定。
For Each TDF In DBS.TableDefs
        If Not Left(TDF.Name, 4) = "MSys" Then
                DoCmd.TransferDatabase acExport, _
                "ODBC", Str_ODBC, acTable, TDF.Name, TDF.Name, True
        End If
Next TDF
End Sub
> 宮内といいます。
>
> MSAccessのDBを Postgresに移行させたいのですが、簡単な方法はあるのでしょうか?
> 従来は、同じテーブルを作成して、Accessのデータを csvにした後、insert文を自動作成し
> 投入していましたが、今回は余りにテーブル量が多く、テーブルを作成するのにカラム名
> をタイプするのもゲンナリするような状況ですので、テーブル毎 migrationする方法や
> ツール等の紹介を頂ければ幸いです。 
    
    
pgsql-jp メーリングリストの案内