PostgreSQLをAccessから操作する。

環境

OS:CentOS7 ( FWはOFFにしている )
PostgreSQL:Ver9.2.23
ACCESS:ACCESS2016

注意

CPUが64bitのものなら、
Officeも64bit版を入れておく必要がある。
ODBCドライバは32bit版と64bit版があるが、
OSは64bit、ODBCドライバも64bit、
ACCESS2016が32bit、の組み合わせは不整合でエラーが出る。
Office製品で、32bitと64bitの混在は不可。
(Visioは32bit、ACCESSは64bitの組み合わせはインストールできない)

作業内容

CentOS7にPostgreSQLをインストール。

$ sudo yum -y install postgresql-server

1度rootになる。

$ su

パーミッションを変更する。

# chmod 757 /usr/local

postgresユーザになる。

$ su postgres
$ cd /var/lib/pgsql/data

データベースクラスタ(全てのデータが格納される場所)を作成する。

$ initdb -D /usr/local/pgsql/data

rootに戻って、パーミッションを元に戻す。

# chmod 755 /usr/local

またpostgresユーザになる。

# su postgres

postgresql-setup なるコマンドもあるらしいのでそれも念のため実行しておく。

$ postgresql-setup initdb

これあれば、上のinitdbコマンドはやらなくて良かったかも。

設定ファイル編集。

$ vi /var/lib/pgsql/data/postgresql.conf
listen_addresses = '*'

この1行を追加した。(サーバがどのIPアドレスで受け付けるかを指定する)

接続できるクライアントの制限の設定。

$ vi /var/lib/pgsql/data/pg_hba.conf

このファイルの最後に、
local all all peer
とか書かれた行があるので、それらを全て#でコメントアウトする。
それから

local all all password
host all all 127.0.0.1/32 password
host all all ::1/128 password
host all all 192.168.1.0/24 password

を追加した。
(最後はネットワークアドレスを指定しているけど、
そのネットワークのIPアドレス全て受け付けるという意味)

$ psql -l

とやって、データベースを確認する。

$ psql

と打って、パスワード入力してpsqlに入る。

$ create database test_db;

と打って、データベースを作成する。

$ \c test_db;

と打って、データベースを切り替える。

$ create table test ( id integer, name text );

と打って、テーブルを作成。

$ insert into test values ( 0, 'tanaka' );

と打って、データを挿入。

$ select * from test;

と打って、挿入したデータを確認。

PostgreSQLのODBCドライバをWindowsにインストールするので、
インストーラーを次のURLからダウンロードする。
https://www.postgresql.org/ftp/odbc/versions/
32bit版と64bit版があるけど、
ACCESS2016の32bit版をインストールしてるなら、ODBCドライバも32bitを選択する必要がある。(CPUも32bitである必要がある)
ACCESS2016の64bit版をインストールしてるなら、ODBCドライバも64bitを選択する必要がある。(CPUも64bitである必要がある)
msiフォルダの1番バージョンが高いものを選べば良いはず。
インストールが終わったら、(Win7の場合)
コントロールパネル→管理ツール→データソース(ODBC)を起動して、
ユーザーDSNタブの追加ボタンをクリックして、
出てきたウィンドウに各種情報を入力してテストが完了したら
保存ボタンをクリック。

次にACCESS2016を起動して、空のデータベースを開く。
「外部データ」タブの「新しいデータソース」→「他のソースから」
→「ODBCデータベース」をクリック。
ウィンドウが出てくるので、
「リンクテーブルを作成してソースデータにリンクする」を選択してOKボタンをクリック。
データソースの選択というウィンドウが出てくるので、
「コンピューターデータソース」タブをクリックして、
「PostgreSQL_Test(さっき作成したもの)」を選択してOKボタンをクリック。
テーブルのリンクというウィンドウが出てくるので、
「public.test」を選択してOKボタンをクリック。
固有レコード識別子の選択というウィンドウが出てくるので、
主キーを選択してOKボタンをクリック。
(主キーを選択しないとACCESS2016から更新ができなくなる)
左にテーブル名が出てくるので、ダブルクリックするとテーブルの内容が表示される。
更新もできることを確認したら、これで完了!

コメント

タイトルとURLをコピーしました