写真を決めたフォルダに決まった名前で保存して表示させる。美容室向け顧客管理システム 開発日記9日目

Accessでアプリを作ってます。今日はお客様一覧に写真を選択して表示させるダイアログ関係をつくりました。

動作の手順としては以下のような感じ

  • ファイル選択ダイアログで取り込みたい写真を選択
  • ファイル名を「ID+氏名+拡張子」に変更して アプリで指定したフォルダへコピー
  • 変更後のファイル名をMST_お客様のテーブルに「写真FileName」の項目で登録(実際にはTextBoxに文字列として書き込む)

今回は参照設定の追加が2つ必要です。ファイルダイアログを使うために、Microsoft Scripting Runtime。ファイルの名前と拡張子を分離するためにMicrosoft Office 16.0 Object Libralyを追加しました。拡張子の分離などについては標準関数をつかった文字列操作でも可能ですが、今回はファイルオブジェクトから抜き出してみました。以下のようなコードになりました。

動作テストしてみます

まず、適当な場所にあるお客様の写真を選択します。あとでファイル名はお客様の名前に変換されるので、この時点で写真のファイル名はなんでも構いません。

コードの以下の部分で、ファイル名を変更して、指定のフォルダにコピーしています。

Dlookupを使っている部分があります。これはこのアプリで写真を一括保存してためておくフォルダ名です。コードのあちこちでフォルダ名を直接打ち込んでしまうと、あとで変更したいときに大変なので、アプリの環境変数的なものをテーブルに保存しておくことにしました。テーブルは以下のような状態になっています。ほかにも必要な項目があればふやしていけそうです。

写真の表示はイメージオブジェクトをからの状態で置く

写真を表示させたい位置にイメージオブジェクトを置きます。置いた直後にはファイルを選択するようにダイアログが出ますが、キャンセルでとじてしまいます。

イメージのプロパティのコントロールソースには、以下のような指定をしておきます。写真取り込みボタンの左側には非表示のテキストボックス。コントロールソースにはDlookupをつかった保存フォルダとファイル名を連結することで表示ができるようになりました。

ほかの一覧表示にも写真を表示させる

仕組みは同じなのでほかの一覧表示にも写真を表示させます。お客様詳細画面ではテキストボックスにファイル名が入っているので、その値を使いましたが、一覧ではお客様IDをキーに、こちらもDlookupを使ってファイル名も一緒に検索してしまうことができました。長いけれど要領は同じです。

写真が入るとそれっぽくなってきましたね。一気にお客様一覧がにぎやかになってきました。

できてくると次やりたいことが見えてくる

画面の左には一覧のタブだけがありますが、お客様にカテゴリ付けして、ここで女性、男性とか学生、成人など切り替えられるようにするってのはどうかしらと検討中です。

あと、欄だけ用意していますが、最終来店日ってのは美容院には必要な項目かしら?と思ってつけてみました。DM送るときの目安にもなるし。

You Might Also Like

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください