データベースをエクセルで操作する-3.登録

14.11.04

 データベースの「接続」「切断」以外は、各データベース共通のコードとなります。具体的には、

Mysqlであれば、
 Call a02_InODBC
 Call a09_OutODBC
Accesであれば、
 Call a01_InODBC
 Call a09_OutODBC
udlファイルを使うのでであれば、
 Call a05_InODBC
 Call a09_OutODBC   で、コードを呼び出し、接続と切断を行います。

以下、Mysqlに接続するものとして、説明します。

登録 (エクセルシートの2箇所から登録)

1、データベース「test」に、テーブル「uriage2」を作成、
2、データは、何も入っていません。
3、モジュールに下記のコードを記述
4、ボタンを作成し、「d2_mysql登録uriage2」に関連付ける。(ボタンの作成方法は、「1.Mysql」参照)
  さらに、シートを4 のように整える。
5、ボタンを押して登録
6、「phpMyAdmin」で調べると、データが登録されている。

1、「key1」には、主キーを設定
1
2、表示
2
4、上記のような配置で整える
4
5、ボタンを押して登録
5
6、表示
6

3、登録/モジュールの適当な場所

※モジュールにコピペすると「半角スペース」が、「?」に文字化けする場合がある、修正してご使用ください。

category: 4.PC , DB Excel comment: (0)

データベースをエクセルで操作する-4.更新、削除

14.11.04

更新

A、方法1(一旦削除し、再登録する。)

1、「3、登録」で作成した、データベース「test」テーブル「uriage2」を利用します。
2、モジュールに下記のコードを記述、
3、ngp=20141001、kikai=2 を抽出した状態 (抽出、更新ともに、ボタンに関連付けている)
4、imgのように修正し、更新ボタンを押す
5、「phpMyAdmin」で調べると、データが更新されている。

3
3
4
4
5
5

2、モジュールの適当な場所

※モジュールにコピペすると「半角スペース」が、「?」に文字化けする場合がある、修正してご使用ください。

更新

B、方法2(セルごとに更新する。)

1、データベース:test、テーブル:goods を使用
2、データの内容
3、抽出用のコードを記述し、3 のようにマクロを実行(確認だけならこれでOK)
 ちなみに、SUBプロージャー内で「F8」キーを押すと、マクロが実行される過程が確認できます。
4、エクセルのデータを修正
5、更新用のコードを記述し、5 のようにマクロを実行
6、phpMyAdminで確認すると更新されています。

1
1
2
2
3
3
4
4
5
5
6
6

モジュールの適当な場所

※モジュールにコピペすると「半角スペース」が、「?」に文字化けする場合がある、修正してご使用ください。

削除

1、更新の「B、方法2」で使ったテーブルとシートを利用します。
2、エクセルのシートをを整える。
3、コードを記述し、マクロを実行
4、phpMyAdminで確認すると削除されています。

2
2
3
3
4
4

モジュールの適当な場所

※モジュールにコピペすると「半角スペース」が、「?」に文字化けする場合がある、修正してご使用ください。

category: 4.PC , DB Excel comment: (0)

データベースをエクセルで操作する-5.udlファイル

14.11.04

 下記は、Access(アクセス)だけで通用する登録、更新の方法です。登録と更新が、同時に行えます。
 「Microsoft Access Driver」で接続しても通用しないので、「.udl」ファイルを使って、接続します。
 「.mdb」であれば、「Jet 4.0 OLE DB Provider」
 「.accdb」であれば、「Microsoft 15.0 Access Database Engine OLE DB Provider」を使います。
 めんどうなコードを書かなくても、結果オーライで接続可能。 ちなみに、Mysqlでも、「.udl」ファイルで「Microsoft OLE DB Provider for ODBC Drivers」を設定することにより、接続、前述の抽出、登録その他できます。しかし、下記の方法ついては不可能でした。(1-2 インデックスの設定他、Mysqlでは、サポートされていない記述があるようです。) 

更新と新規登録

C、方法3(更新と登録を同時に行う)
 「.mdb」でも、手順は同じ。「.accdb」で説明します。
a、Accessの設定
1、とにかく、データベース「pl2.accdb」にテーブル「PL」を作り、データを入れてます。
2、デザインタブのインデックスをクリック、インデックス名をメモしておきます。

1
1
2、インデックス名は「primarykey」
2

b、「.udl」ファイルの作成
1、テキストエディタなどを開き、空のまま「pl2.txt」と名前を付けて保存
2、保存した「pl2.txt」の拡張子を「pl2.udl」に変更
3、「pl2.udl」を開き、プロバイダータブの「Microsoft 15.0 Access Database Engine OLE DB Provider」を選択し、「次へ」ボタンを押す
  (「.mdb」であれば、「Jet 4.0 OLE DB Provider」)
4、データソースに「pl2.accdb」までのフルパスを入力し、「接続のテスト」ボタンを押す
5、接続に成功したら、OK→OK で終了

2、かまわず「はい」で変更
2
3
3
4
4
5
5

c、登録と変更
1、モジュールに、下記のコードを記述
  インデックスの設定には、a で調べた「primarykey」を入れる。
2、エクセルにデータを抽出
3、3 のようにデータに変更を加え、登録
4、「phpMyAdmin」で調べると、データが登録および変更されている。

2
2
3、色付き部分を修正
3
4
4

1-1、抽出

1-2、登録と更新

※モジュールにコピペすると「半角スペース」が、「?」に文字化けする場合がある、修正してご使用ください。

Mysqlの「.udl」ファイルの設定

1、「・・・・.udl」を開き、プロバイダータブの「Microsoft OLE DB Provider for ODBC Drivers」を選択し、「次へ」ボタンを押す
2、2 のようにデータベース名「test」を入力し、「ビルド」ボタンを押す
3、「test dsn」を選択し、OK
4、4 のように入力し、「test」ボタンを押す
5、接続に成功したら、OK→OK
6、6 、7 のように「2.サーバーへの・・・・」に入力、パスワードを保存するにチェック→接続のテスト
7、接続に成功したら、OK→OKで終了

1
1
2
2
3
3
4
4
5
5
6、7
6、7

参考文献

 上記の登録、更新の処理が載っている。その他面白いサンプルがたくさんあり、特にデータベースのSectionは、役にたった。

1

category: 4.PC , DB Excel comment: (0)

データベースをエクセルで操作する-6.参考文献

14.11.04

 データベースをエクセルやWebで操作するには、SQL文を使う必要があります。以下、特に役にたった本です。

9784774139937 .

データベースとSQL文の基礎をわかりやすく説明

9784774138350 .

やってみたいテクニックを多く記載

2958819 .

使いやすい。ExcelVBAを使うには、辞典のようなものが1冊必要。

 

category: 4.PC , DB Excel comment: (0)

データベースをWebで操作する-1.接続、抽出

14.10.30

 データソース(ODBC)をセットアップすると、コードが、簡単になります。

Mysqlの場合

前提:ローカルPCにXAMPPがインストールされ、Apache、Mysqlが、稼働していること
特徴:ローカルPCをWebサーバーとすることにより、公開できる。
方法:PHP、ODBCを経由 

Ⅰ、Ⅱ は、「MySQL Connector/ODBC 5.1」をダウンロードした状態での説明になります。

Ⅱ、ODBCの設定
0、Mysqlで、データベース「lesson」を作成している状態
1、Windowsの「スタートメニュー」の検索で、「ODBC」と入力
2、「データソース(ODBC)のセットアップ」を選択
3、「システムDSN」タブを選択→追加ボタン
4、「MySQL ODBC 5.1 Driver」を選び完了
5、のように入力→TESTボタン
6、接続成功→OK→OK
7、システムデータソースに追加されていることを確認→OK

追加ボタンを押す
3
MySQL ODBC 5.1 Driverを選ぶ
4
Data Source Name は任意
5
接続成功
6
追加されている
7

Ⅲ、文字化け対策
 データベース「lesson」、テーブル「data」、コラム「biko」に日本語を入力して抽出してみると、Mysqlで「sjis」を指定し、「.php」でも「sjis」を指定しているにもかかわらず、抽出される日本語が「????」で表示されてしまう。(エクセルとの整合性を保つため、あえて「sjis」にしてます。)
 いろいろ調べて試しましたが、結局「MySQL Connector/ODBC 5.1」では、文字セットを設定するところがないため、不可能であることがわかりました。
 「・・・・・・・5.3」には、設定場所が存在するらしいので、仕方なくダウンロードして設定してみると、文字化けが、無事解消されました。以下、設定方法。

1、「MySQL Connector/ODBC 5.3」をダウンロードする。
  ダウンロードサイト⇒Download Connector/ODBC

1 2 3 4 5 6 7

2、もう一度、Ⅱ の設定をしています。上記4 では、「MySQL ODBC 5.3 Unicode Driver」を選んでください。
3、Windowsの「スタートメニュー」の検索で、「ODBC」と入力
4、「データソース(ODBC)のセットアップ」を選択
5、「システムDSN」タブを選択→「MySQL ODBC 5.3 Unicode Driver」を選ぶ→構成ボタン
6、「Details」ボタンを押す
7、「cp932」を選択→OK
8、もう一度OKを押して、終了

構成ボタンを押す
5
「Details」を押す
6
「cp932」を選択
7

Ⅳ、接続と抽出
1、データベース「lesson」、テーブル「data」を作成し、
2、データを登録しています。
3、PHPファイルに下記のコードを記述し、XAMPPの「htdocs」フォルダーの適当な場所に保存します。
4、Webで表示すると抽出されます。
    ⇒[実行]  (※1日に数時間だけ稼動)

データベースの構造
1
データベースの表示
2
文字化けが解消されて抽出
4

Accessの場合

前提:ローカルPCにXAMPPがインストールされ、Apacheが、稼働していること
特徴:ローカルPCをWebサーバーとすることにより、公開できる。
方法:PHP、ODBCを経由 

Ⅰ、ODBCの設定
0、Accsessで、データベース「test1.accdb」を作成している状態
1、Windowsの「スタートメニュー」の検索で、「ODBC」と入力
2、「データソース(ODBC)のセットアップ」を選択
3、「システムDSN」タブを選択→追加ボタン
4、「Microsoft Access Driver(*mdb,*accdb)」を選び完了
5、データソース名を入力(任意で、「test1」としました)→選択ボタン
6、「test1.accdb」ファイルのあるフォルダーを指定し、該当するファイルを選択→OK
7、前画面にもどるので、そのままOK
8、システムデータソースに追加されていることを確認→OK

追加ボタンを押す
3
上記を選択
4
「test1」と入力
5
データベースを選択
6
追加されている
8

Ⅱ、接続と抽出
1、データベース「test1」、テーブル「uriage」を作成し、
2、データを登録しています。
3、PHPファイルに下記のコードを記述し、XAMPPの「htdocs」フォルダーの適当な場所に保存します。
4、Webで表示すると抽出されます。
    ⇒[実行]  (※1日に数時間だけ稼動)

データベースの構造
1
データベースの表示
2
抽出
4


 

category: 4.PC , DB Web comment: (0)

データベースをWebで操作する-2.登録、更新、削除

14.10.30

 登録、更新、削除について。Mysqlに接続するものとします。
 新たにデータベース「drinks」、テーブル「goods」を作ってます。
 

登録

 テーブルの構造と下記のコードを実行した様子

構造 4-2-1_1
4-2-1_1
4-2-1_2
4-2-1_2

odbc4-2-1_1.php

odbc4-2-1_2.php

odbc4-1-1.php(抽出、参考)

更新、削除

 下記のコードを実行した様子

4-3-1_1
4-3-1_1
4-3-1_2
4-3-1_2
4-3-1_3
4-3-1_3
4-4-1_2
4-4-1_2
4-4-1_3
4-4-1_3

odbc4-3-1_1.php

odbc4-3-1_2.php

odbc4-3-1_3.php

odbc4-4-1_2.php

odbc4-4-1_3.php

category: 4.PC , DB Web comment: (0)

データベースをWebで操作する2

14.10.29

Mysqlの場合

前提:レンタルサーバーでMysqlとPHPが使えること。又は、
    ローカルPCにXAMPPがインストールされ、ApacheとMySqlが、稼働していること
特徴:レンタルサーバー、ローカルPC、共にWebで公開できる。
方法:PHPのPDOを使う。

 レンタルサーバーにあるMysqlのデータをPHPのPDOにより抽出してみます。

実行⇒http://khmito3.sub.jp/test/

 Mysqlに関しては検索すればたくさんあるし、本も出版されている。
 参考文献は、以下の本。接続、抽出、登録、更新、削除その他、くわしく書かれています。サンプルあり。

sqlsamp

 なお、レンタルサーバーでアクセスの「mdb」ファイルを使うには、まず、レンタルサーバーのOSがWindowsでないといけないそうです。ロリポップのOSを調べたら、Linuxだったので実験できませんでした。
 また、上記の本やWebを参考にローカルWebで「.mdb」の抽出を試みましたが、それも失敗しました・・・・・
 まあ、レンタルサーバーでMysqlが使えれば問題ないし、この件に関しては、Give up !

category: 4.PC , DB Web comment: (0)