Q17:データーベースから一部の情報を取得(テーブル情報そのままではなく)し、処理上でエクセル画面に出力させるというようなことや、逆に、エクセル画面のセル値が変更されれば、それを元にデータベースに反映させるといったようなことは、MZプラットフォームでは不可能なのでしょうか?
Q17-1:
エクセルの入力、出力操作について
現状として、エクセル画面の入力、出力操作の件で、MZプラットフォームでは可能かどうか・・といった判断がまだできず、処理方法に困っている。エクセル画面をデータベースとするのではなく、データーベースから一部の情報を取得(テーブル情報そのままではなく)し、処理上でエクセル画面に出力させるというようなことや、逆に、エクセル画面のセル値が変更されれば、それを元にデータベースに反映させるといったようなことは、MZプラットフォームでは不可能なのでしょうか?
A17-1:
確認させていただきたい点がございます。
@利用を考えているデータの形式(例:エクセルファイル、CSVファイル、ACCESS,MySQL等データベースに入っている)
A保存先のデータの形式
BMZPlatformを使っていない現状ではどのようにデータのやりとりをしているか。
ご質問頂いた内容はMZPlatform上で実現不可能ではありませんが、保存先等によって、ご紹介する内容が少し違ってきますので、お手数ですがどのようなデータの流れになるか簡単にお知らせ頂ければ幸いです。
Q17-2:
> @利用を考えているデータの形式(例:エクセルファイル、CSVファイル、ACCESS,MySQL等データベースに入っている)
→MySQLです。
> A保存先のデータの形式
→エクセルファイルです。
> BMZPlatformを使っていない現状ではどのようにデータのやりとりをしているか。
→現状では、まだデータベースの接続を行ってテーブル格納変数にデータを代入している状態です。
最終的に私が行いたいことは、自分の好きなようにEXCELフォーマットをMZプラットフォームの処理を元に自由に操作させたいということです。
A17-2:
1)まず、MySQLのデータの閲覧方法ですが
@MZPlatformから
Aエクセルから
B他の市販ツール等から
の3つの方法が考えられます。
@のMZPlatformからの閲覧は「データベースアクセスチュートリアル.pdf」でご紹介の通りです。\AP_DATA\Sampleフォルダーにある「データベースアクセス_3(機能拡張版).apl」を使うと市販のアプリケーションと比べても遜色なく、自由にデータの閲覧・操作ができます。
Aエクセルをインターフェースにする場合には、ODBCの設定をし外部データの取り込みをしますから、簡単なSQLクエリが使えますが、一々設定をする必要があります。
それぞれに利点があると思いますので、用途に応じてご検討下さい。
2)MZPlatformからのExcelデータの閲覧は、
MySQLのデータの閲覧と同様[データベースアクセス]コンポーネントを使って、JDBC-ODBCドライバ接続で、Select文でエクセルデータを取得します。
テーブルシートの一部分を取得するには
select * from [シート名$A1:B3] (セルA1からB3までを読み出し)
あるいはセルの範囲に名前定義をしてから、
select * from [名前定義名]
(シート範囲名を括る記号は []または " " )
などとします。
ヘッダー行の有無は現在のところMicrosoftのODBCドライバーの不具合により指定できません。必ず読み出すデータの一行目がヘッダー行となります。
3)ExcelファイルへのMZPlatformからのデータの挿入・更新は、Insert文、Update文で行います。
名前定義をした範囲にInsert文を発行すると一行分は追加されますが、それ以上は範囲を広げなくてはInsertできません。
Create table, Drop table文等も実行できますが、ExcelへODBCドライバ接続時の性質上、Delete文は実行できません。また Drop table をしても一旦作ったシートは残ります。(CSVファイルにODBC接続をした時は、Drop table文でCSVファイルは削除されます)
4)MZPlatformからのMySQLデータベースのデータの更新はExcelよりも制約が少なく、検索結果を用いた更新も使えます。
なお、MySQL,Excelとも更新等の際にはデータ型、列型に注意が必要です。
MySQLのデータ操作については
「データベースアクセスチュートリアル.pdf」
「購買管理アプリケーション作成チュートリアル .pdf」
及びその完成ファイル(データベースアクセス1〜6.apl、購買管理01〜18.apl)
「工程管理システム操作マニュアル.pdf」「工程管理システム導入マニュアル.pdf」及びProductionControl.mzax、
また、サンプルアプリケーションの「データベースアクセス_1.mzax」、「データベースアクセス_3(機能拡張版).mzax」をご確認下さい。
エクセルへの接続については
「エクセル連携導入チュートリアル.pdf」
及び完成ファイルの「エクセル連携導入(派遣管理).mzax」
サンプルファイル「データベースアクセス_2(エクセル接続).mzax」をご覧下さい。
サンプルアプリケーションは全てAP_DATAフォルダー下に収められています。文書はWindowsの、スタート>すべてのプログラム>MZ Platform *.*>ドキュメントインデックスからご覧下さい。
ご参考までに一つのアプリケーションで、エクセルの接続とMySQLの接続を行う物を作ってみました。それぞれに接続しなくてはいけないので、[データベースアクセス]コンポーネントは2つ使っています。
「データベースアクセス.apl」を基に、少しだけ変更してあります。簡単な検索、データの挿入ができます。エクセルファイルのODBCの設定はせず、直接ファイルを選んで開く形にしてあります。上部のテキストフィールドにはSQL文を書いて実行できますので、色々な文を入れお試しいただければと存じます。
MZPlatform上で処理を行う方が早いか、SQL文で取捨選択した方が早いかなども、その後の処理等により違ってくるかと存じますので、どうぞ今後ともご不明な点がございましたらお問い合わせ下さい。
関連ファイル:エクセル・MySQL接続.mzax (※このファイルは、ZIP形式に圧縮してあります。)