JPSPS 東京運営を手伝って -2-

前回JPSPS についての説明が長かったので、今回から内容編です。
長くなりますよー

image.png

さて、大きく下記の4つを用意/作ってみることにしました。というところまででした。

  • 受付け アプリ
  • SharePoint クイズ大会用アプリ
  • データ管理
  • 各種データの参照

それぞれ、どんな製品/サービスを使ったのかマップしました。

作成物 利用した製品/サービス
受付けアプリ ・Access
・SharePoint Online リスト
SharePoint クイズ大会用アプリ ・坂本さんのアプリを ほぼそのまま利用!
・Azure Webサイト
・SQL Azure
データ管理 ・SharePoint Online リスト
・SQL Azure
・Azure Machine Learning
・Cloud Business App
各種データの参照 ・Excel
・Power Query
・OneDrive

重複しているので抜き出してみると、10種類の製品/サービスを利用したことが分かります。

  1. Access
  2. SharePoint Online リスト
  3. 坂本さんアプリ
  4. Azure Web サイト
  5. SQL Azure
  6. Azure Machine Learning
  7. Cloud Business App
  8. Excel
  9. Power Query
  10. OneDrive

では早速、今回は 「受付けアプリ」の説明を行います。


一昔前だとAccess使いの人も多かったんですが、どうも最近は少なくなってきているようで・・・サミシイ限りです。

でも、知ってると非常に便利なツールなので、これを機に勉強してもらえると嬉しいです。

#とか言っておいて、このサイトでは、特にAccessについての説明はしません。
「Access 入門」 といったキーワードで検索すると、非常に多くのサイトが出てきますのでそちらを参考にしてください。

ちなみに Microsoft Officeのサイトにも入門編が掲載されていたりします。

Access 入門
http://office.microsoft.com/ja-jp/training/RZ006118141.aspx


image

16:9(1366×768以上)のタッチパネルを想定した画面です。

選択したカナと一致したユーザーが絞り込まれて、右のリストに表示されます。
(登録名の検索カナフィールドを用意しており、部分一致で絞り込み)

他には「受付けがまだ」「受付済み」「全部」を切り替えて表示したり、その際に「受付済みで会費有料の人数から会費合計」や「受付済みで懇親会参加人数」を表示します。

下記はユーザー名をダブルタップすると表示されるフォームです。

image

選択ボタンはトグルボタンです。

有料/無料」や、「参加/不参加」、「受付けまだ/済み」 といった boolで判断、かつワンタップで処理が出来るようにしています。

Developer」や「User」のチェックボックスは複数項目選択できるようにしました。
このデータは参加者の傾向を見るための項目ですが、あくまで参考のノベ集計です。

タッチパネルのPC、むしろパッドを想定して作成しているアプリであり、いかに簡単に操作が出来るか、詳しく説明しなくても使えるかを考えながら作成しています。

ちなみに、今回はAccessクライアント(普通のOffice Access)で作成しています。

SharePointのAccessアプリでも作成していましたが、勉強会場所のネット品質が分からなかったため、最悪ローカル運用できるように考えて最終的にAccessクライアントを使うことにしました。

これまたちなみにですが、ローカル運用方法としては下記を想定していました。

image

リンクテーブルのコンテキストメニューより、「ローカルテーブルに変換」を行います。
ローカルテーブルに変換後も、Accessのアプリケーションとして問題なく動作します。
(単にローカルのテーブルを参照するようになっただけです)

最終的なデータの参照はExcelから行いますが、データの接続先としてはSharePointリストでも、Accessでも自由に変更できるので、最終版のAccessファイルをUSBメモリ経由で受け取れば集計が可能となります。
ただ、ローカル運用は面倒です・・・リアルタイムにデータも参照できないし。

当日はテザリングで接続が安定したので、リンクテーブル運用が出来て助かりました。

アンケート結果にて「IT化されてスムーズになっていたと思います」といただきました。
少しでも効果があったと思うと嬉しい限りです。

次回(手伝える回)はバーコード(もしくはQRコード)の受付にしようかなと思っています。
(よくある入館のシステムと同じ)

JPSPSサイトでの登録時にメールアドレスを入力いただいているので、登録日時、登録名、メールアドレスで発券してメールでお知らせするようにするのもいいかなと勝手に考えてたりします。
もちろんバーコード以外:今回のような名前検索も出来るようにしておいて、どちらでも受付が出来るようにしておけばいいかなと。

受付けについてはまだまだ便利にしていく手があるので、今後もAccessベースで拡張していければと思います。

下記は、もうちょっと突っ込んだ話です。

今回、最終的なデータの参照は全てExcelから行おうと思っていますので、データの一元管理(権限含めて)先として SharePointリストを利用しています。

受付けアプリ」では、Access上で、SharePoint Online のリストをリンクテーブルとして接続し、クエリとフォームを作成して実現しています。

また、「ボタンクリック時」 等のイベント処理は VBAで書いています。
(マクロだけで作ってもよかったんですが、VBA書く方が簡単なので・・・)

リンクテーブルの設定を行うとこんな感じになります。
UserInfoテーブルはSharePointリストとリンクテーブルを設定すると自動でリンクされます。

image

このリンクテーブルですが、「Accessでテーブルを作成してからShareaPointにアップ」することも出来ますし、「作成済みのSharePointリストをリンク」することも出来ます。

image
[AccessのテーブルをSharePointのリストにアップする場合]

image
[既存のSharePointのリストをインポートまたはリンクする場合]

リンクテーブルを利用する注意点としては、従来Access側で各フィールド毎に設定できる「書式」、「定型入力」、「入力規則」等がリンク先のテーブル仕様次第になるところです。

今回で言うと、各フィールドの設定は SharePointリストの列の編集内で設定出来る項目しかAccessで利用できません。
#逆にAccess側が理解できない設定を行っても反映されません

image

合わせてトランザクション処理についてもリンク先のデータベースの仕様によるので注意が必要です(これはAccessに限らないか)

とは言え、シンプルなAccessアプリを作る時には、結構いい加減(失礼)に作っても それなりに動いちゃうんですよね。

今回は複数同時利用を想定していない運用なので、レコードロックの設定も行っていません。
もし複数ユーザーでの排他制御が必要な際には、「既定のレコードロック」は「編集済みレコード」にして、ロック状態を判別するようなコードを書いたりします。

合わせて「レコード レベルでロックして開く」をチェックしておけばいいですね。(2013は規定でチェックが入っています)
#DBファイルは大きくなりますが、ページ単位のロックよりはコントロールしやすいので

image

最後に、下記はオブジェクト一覧です。

image

クエリが多いですが、メンテナンス性を考えるとなるべくクエリで実装した方が楽です。

今回ソースの中にSQL分は一切書いていません。
動的SQLを作成するためソース内に記載することがありますがクエリ+VBAで対応出来ます。

Publicで関数を作っておくと、クエリデザインの式ビルダーで選択することが出来るので、

image

戻り値を動的にしたい値にすればオッケーです。
さらにクエリで Like演算子と組み合わせることで、あいまい検索を行えます。

image

長々と書いてしまいましたが、新年特別号ということで。

次回は クイズ大会用のアプリと、データ管理についてを予定しています。

Akira Fukami

  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA