[三流君] −−>
[プログラマー業務の愚痴] −−>
[バックナンバー一覧]
−−> No.028 Access97 画像リンク処理(埋め込みでMDB肥大を防止?)
Access97 画像リンク処理(埋め込みでMDB肥大を防止?)
本文(発行内容)
<Access97 画像リンク処理(埋め込みでMDB肥大を防止?)>
目次
1.はじめの挨拶
2.読者よりヒントメール来ました
3.単体テスト用に作成してみますか、、、
4.モジュールの解説、、とイベントって?
5.積み残し、、、あったらいいな、、、
6.おわりの挨拶
----------------------------------------------------------------------------
/*
* 1.こんにちは
*/
こんにちは。
今回は、前回読者からいただいた、
ヒントを利用して、
Access97 画像リンク処理(埋め込みでMDB肥大を防止?)
をやってみたいと思います。
*なんか、サンプル、、そのまんまじゃん、、、
読者数も、解除・新規登録を繰り返して?1000人突破しました。
*まぐまぐの読者数1000人って、まだまだ、少ないみたいです。
(すごく、下のほう)
喜んで、ランキングのページ見に行った、自分がはずかしい。。。
マニアックな読者を減らさないように、がんばります。
おまえだけが、変り者だって、、、あっ、そうですね。。。
↑今(2002/12)、870人かなり減った(笑) | |
/*
* 2.読者よりヒントメール来ました
*/
読者さんより、Access画像管理のヒントメールいただきました。
>フォーム,レポートで・・・
>---------引用---------------------
>実行時にイメージコントロールの Pictureプロパティにファイル名を
>セットするという方法を使っています。
>
>具体的には
>画像を任意のフォルダに入れておいて
>
>イメージ.Picture = strPath & 部品名 & ".jpg"
>
>を実行します
>strPath は任意のフォルダです。
>
>この場合画像のファイルの名前を特定できるように"部品名.jpg"等にする工夫は
>必要です。
>
>テーブルに画像を入れるとMDBが巨大になるのであまりお勧めできません
>---------引用終わり-------------
サンプル作成して、試してみたいと思います。
/*
* 3.単体テスト用に作成してみますか、、、
*/
さて、ヒントをもらったので、
単体テスト用に作成してみますか、、、
( hosoku/028/index.htmlに画像付きあります)
目的
大きなプログラムや処理を作る前に、
イメージ.Picture の使用方法を見てみたいので、
簡単なテストプログラムを作成してみる。。。
(同時に、ヘルプなどを見て、自分なりに確認してください。)
内容
簡単に(手抜きで)、
フォームを1つ作成
ファイル名入力用のテキストボックス作成
画像表示用のイメージコントロール作成
で、いいかな。。
作業開始と試行錯誤、、、(こんな簡単なので、試行錯誤してしまった、、、)
まず、適当な名前で、Mdbファイルを作成します。
ここの名前のつけ方で、センスや想像力、、語学力(単語知ってるか)、
わかっちゃうんだよなぁ、、、
テメエのセンスは?最低ランクだなぁ、、、 ほっといてくださいね。
次に、フォームを新規作成します。
まぁ、ここまでは、順調です。
次に、イメージコントロールをフォームに貼ります。
貼りつけ時、勝手に、画像ファイルを選べ、、と出てくるので、
適当に選択します。(もしかして、キャンセルでもいいかも)
( hosoku/028/index.htmlに画像付きあります)
画像が、挿入されます。
プロパティを変更します。
・コントロールの名前を付けます。ここでは、日本語で図としました
・ピクチャータイプを埋め込み-->リンクに変更します
・あとは、サイズなどを適当に、、
*いろいろ、プロパティを変えて、違いをテストしてみてください。
配置・全体表示など、、、イロイロ面白いですよ。
次に、画像ファイル名入力用のテキストボックスを作成します。
プロパティ
名前を、画像ファイル名とします。
イベントの更新後処理にモジュールを書きます(まぁ、テストなので)
me![図].Picture = me![画像ファイル名] として、
入力されたファイル名の画像をリンク表示するように指定します。
右ボタンのビルドって便利です?
モジュールの入力中に右クリック・ビルドを選択します。
オブジェクトの構造が、階層で表示されます、、
なれないうちは、便利ですよ(だんだん、入力したほうがよくなるけど、、)
( hosoku/028/index.html#011に画像付きあります)
さて、テスト実行だ、、、あれ、、エラー、、、だ、、
いつもの勢いで、test.bmpなんて、いれたら、
ファイル名が無かった、、
押したくないけど、デバックを押す。。
( hosoku/028/index.html#015に画像付きあります)
変数名にマウスカーソルをあわせると、値が表示される、、、便利ですね。
*デバックモード嫌いなので(Ken3は、変り者だから、、あまり活用していない、、)
下記のファイル存在チェックをモジュールに入れました。
If Len(Dir(Me![画像ファイル名])) = 0 Then
MsgBox Me![画像ファイル名] & "ファイルが見つかりません、確認してください"
Exit Sub '途中で抜けます
End If
まったく、手抜きするからテメエは、、、テストだから、いいジャンね。。
気楽にいこうよ、、、デバックモード便利とかわかったジャン。。
テスト実行、面倒ですが、フルパスでファイル名を入れてください。
例)c:\windows\セットアップ.bmp , d:\001.gif など、、
何回、実行しても、MDBのサイズが変わらないことを確認して、
テストOK。。。
読者のヒントメールに感謝です。
オイオイ安心するな(ご指摘)/う〜んまだイマイチここは(質問)
などあったら、掲示板に、気軽に書いてください。
/*
* 4.モジュールの解説、、とイベントって?
*/
今回、フォーム・テキストボックス 画像ファイル名
の更新後イベントに、下記のモジュールを追加して、処理しました。
----
Private Sub 画像ファイル名_AfterUpdate()
'ファイル存在チェック
If Len(Dir(Me![画像ファイル名])) = 0 Then
MsgBox Me![画像ファイル名] & "ファイルが見つかりません、確認してください"
Exit Sub '途中で抜けます
End If
'画像のセット
Me![図].Picture = Me![画像ファイル名]
End Sub
----
モジュール内のポイントは、
Me![図].Picture = Me![画像ファイル名]
とすると、入力されたファイル名の画像を表示できるのと、
If Len(Dir(Me![画像ファイル名])) = 0 Then
でファイルの存在チェックをしています。
*1つ言ってよい?
また?ですか、、いいですよ。
ファイルの存在チェック、、これ、c:\aaa.txt とかテキストファイル指定されたら、
どうなるの?
あっ、、、なんか、お腹が痛くなってきた。。。
(エラー処理って、深いですよ、、、みなさんも、よく考えて、、想像して、、)
全体のポイントとして、イベント処理があります。
パターンとして、なにかしらのイベントが発生したら、
それに対して、処理を行う、、ような感じです。
新人君、仕事しないで、ボーットしてる(指示待ち/イベント待ち)
*まぁ、息すって、何かしら動作待ちしてますね。
会社の外線・内線が鳴る、、無視する(このイベントには反応しない)
自分の携帯が鳴る、2コール以内で反応、外に出て受け処理に入る
(イベントに対する、処理がある)
XX君チョットと呼ばれる、、イヤイヤながら、ハイと返事する、、
定時5分前、、帰りの準備イベントが発生(タイマーイベント?)
って、感じで、人それぞれ、いろいろなイベントに対応して、
動作をしてます。(そんな、単純じゃないけど、、、)
Accessやほかのシステムでよく、見かけるのが、
ボタンなどのクリックイベントです。
実行ボタンが押されたら、この処理を実行などのモジュールが記述されている。
またまた、前置き、長かったですが、
今回は、入力されたファイル名が、変更されたら、画像を変えたかったので、
フォーム・テキストボックス 画像ファイル名
の更新後イベント AfterUpdate() にモジュールを書いて処理しました。
書く、モジュールのタイミングなど、
msgbox "更新後呼ばれました"
など、入れて、試してみると、いいかもしれません。
枠外解説・グチ --- イベントの優先順位
イベントには優先順位があります。
更新後イベントが発生する前に変更時イベントが発生するなど、、、
レコード更新後イベントでキャンセルイベントを発生させるなど、
イベント処理、奥が深いので、別の機会に詳しくやりたいと思います。
例)データ登録時、在庫を確認して、無ければエラーメッセージを表示して、
登録イベントをキャンセルするなど、、
例)新人君、残業イベント発生、、女の子に電話、、予定があったら、
残業イベントキャンセル
/*
* 5.積み残し、、、あったらいいな、、、
*/
簡単な、テストを作って、感じたこと。。。
サイズが大きい画像や小さい画像をうまく表示したい。
まぁ、写真など、画像のサイズが決まっていれば、問題無いんだけど。
*イメージデータのサイズを自動的に調整したいな、、、と思った。
もしかして、プロパティでできるのかな?
あれ、これ、違う質問で、BMP,JPGのサイズを知りたい、、につながるかも。。
前回のパラメーターを保存したい。
一回フォームを閉じると(再立ち上げすると)
入力エリアが空白になる、、前回の値を保存。。
これも、、どこかで聞いたような。。
あとは、テーブルを作成して、
実際の社員マスターと画像ファイル名でリンクして、
MDBが肥大しない、、ですね。。。
簡単な質問・要望、、待ってます。
枠外解説・グチ --- 素人のフリをしたプロ?
最近、質問受けるのですが、どうもわかってて聞いてる人、いるような気がする。
*ホントの素人さんの質問もあります。。気を使い過ぎかなぁ?
客先でも、たまにいるのですが、
素人のフリをしたプロ?
やっかいです。
知ってて、わからないフリをして、こちらの実力を試している?
なんか、客先のできる担当者に誘導?されたみたいに、、
いろいろコントロールされてるような?
そんなに気にしなくても、テメエの実力なんて、わかってるって?
そうですよね。。。
/*
* 6.終わりの挨拶
*/
今回、目的の処理を達成するために(達成してませんが)
簡単なテストプログラムから作成してみる、、、
こんな開発手順もあるんだ、、と感じてくれれば、、、
質問・要望・アドバイス・・・・ご指摘など
あったら、掲示板に気軽に書いてください。
素人のフリしたプロ・ホントの素人さんのなんでも質問・要望メール大募集です。
では、また。
今日は、BBS・掲示板めぐりでつかれた 三流PG Ken3でした。
ページフッター
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
リンクや広告など
項目別に本音?それとも建て前?的な記事をまとめました。
Blogとリンク:[三流君の作業日記]/
[愚痴(Bookmark)]/
[広告Blog(Bookmark)]
[三流君(TOP ken3.org へ戻る)]
/ [プログラマー業務の愚痴]
/ [バックナンバー 一覧]