Access Services で出来る事、出来ない事
October 1st, 2016株式会社 サードアイ 長澤 久紀
(ながさわさん)https://www.facebook.com/lakesidenagasawa
1
Japan SharePoint Group 勉強会#24
自己紹介
• プロフィール長澤久紀(ながさわひさのり)
富山県南砺市出身 滋賀県大津市在住 18年目
株式会社サードアイ 滋賀 Lab. 所長
• 経歴とスキル– 1999 年 – 2008 年 富山県を本社とする 大手 SIer の子会社 に勤務。
– VB + Oracle を経て、 Java 2 のころに Lotus Notes に寄り道。
– Lotus が IBM に買収されたあたりで .NET と Java EE に戻る。
– 半導体製造ロボットの通信ドライバーなどの開発に従事。
– 得意分野は通信プロトコルの実装。
– グループウェアつながりで SharePoint をやるようになりました。 2
アジェンダ
• Access Services とは
• Access Services 2010 を 振り返る
• Access Services 2013 で できること
• Access Services 2013 で できないこと
• Access Services 2013 の 利用用途を考える
• まとめ
3
4
Access Services とは
Access Services とは
• Access Services とは– Microsoft Access をクライアントとして、 SharePoint サーバー上に
Web で共有できるデータベースを作るしくみ。
• Access Services の種類– Access Services 2013
• Access 2013 をクライアントとして、 SharePoint アプリとして発行。
– Access Services 2010• Access 2010 を主なクライアントとして、 SharePoint へ サイトとして発行。
(新規作成は Access 2010 でしかできない)
Access Service 2013• 概要
– Access Web データベースを SharePoint アプリとして発行する
• SharePoint Online で使う– セットアップ済み
– つくってみます
6
Access Service 2013• 方式的な特徴
– アプリなのでサブサイトにはならない。
– アプリなので前方参照のアドレスが適用される
• アプリケーションとしての特徴– デスクトップデータベース (accdb) とは設計要素が限られる。
– Access は 開発ツールであり、起動はあくまでもブラウザで行う。
7
Access Service 2013• オンプレミスでの設定方法
– ドメイン構成で DNS の設定が必要。
– SQL Server は Enterprise Edition が必要。
– アプリを動かせるようにする• https://technet.microsoft.com/ja-jp/library/fp161236.aspx
– Access Services を設定する• https://technet.microsoft.com/ja-jp/library/jj714714.aspx
– Access Service 2010 のサービスの起動が必須
– アプリカタログ を設定する• https://technet.microsoft.com/ja-jp/library/fp161234.aspx
8
9
Access Services 2010を振り返る
Access Service 2010• 概要
– Access 2010 をクライアントとして、 SharePoint へ サイトとして発行。
• SharePoint Online で使う– セットアップ済み
– つくってみます
Access Services 2010• 方式的な特徴
– デスクトップデータベースを Web データベースとして発行する。• 厳密な互換性チェックがある
– サブサイトになる。
– Access 2013 でも開けられる。
• アプリケーションとしての特徴– Web 用の設計要素が増えており、 Web と クライアントで用途が厳密。
– テーブルに長整数の主キーが強制、オートナンバーに変換されてSharePoint リストとなる。
11
デスクトップ と Web の設計要素の比較( 2010 )
設計要素 デスクトップ DBWeb DB
クライアント Web
テーブル あり あり SharePoint リスト
フォーム あり あり イベントはマクロのみ(VB が使えない )
クエリ あり あり クエリデザイナのみ(SQL が使えない )
レポート あり あり Web で表示(Online では無効 )
マクロ あり あり あり
モジュール あり あり なし
12
Access Services 2010 • Web の制限
– Web で実行されるものは Web になければならない• Web フォームのデータソースは Web テーブル
• Web クエリでは SQL が使えない
• Web フォームでは VB が使えない
• マクロも同じ
– 細かいことをやろうとすると結局 Access がいる
13
Access Services 2010• 当時ユーザーが思ったこと
– mdb が Web で動くそうだ!!
– イントラで運用している mdb を Web でやろうとした→ フォームを Web に移植しきれなかった。( VB モジュールとか)
– データだけでも共有しよう!!• Web テーブルへのリンクができる
→ SharePoint リストの制限に対応しきれなかった。
– オートナンバーのキーに対応したぞ!!→ リンクテーブルのリストへのバッチ処理が遅かった。 (数千件)
– Web 化断念 ...
14
15
Access Services 2013 で出来る事
Access Services 2013• そんな経緯もあって
– デスクトップデータベースを Web に発行するものではない。• デスクトップデータベース (accdb) とは設計要素が限られる。
→ できることを大幅に制限した。
– Access は 開発ツールであり、起動はあくまでもブラウザで行う。• 利用者は Access がなくても使える。
– サイトではなくアプリに変更。
16
デスクトップ と Web の設計要素の比較( 2013 )
設計要素 デスクトップ DBWeb DB
クライアント Web
テーブル あり 廃止 SQL Server へ格納
フォーム あり 廃止イベントはマクロのみ
(VB が使えない )
クエリ あり 廃止 クエリデザイナのみ(SQL が使えない )
レポート あり 廃止 廃止
マクロ あり 廃止 あり
モジュール あり 廃止 なし
17
Access Services 2013 の変更点
• クライアント設計要素– 根こそぎ廃止。
• ルック&フィール– ナビゲーションペインとタブビューによる2ペイン固定。
– タブに割り付けたフォームに「ビュー」という名称を採用。
• データストア– SQL Server のデータベースとして配置される
• 残念ながら、 ID がオートナンバーなのは変わらない。。。
18
Access Services 2013 でできること
• アプリケーション– 単票データの入力、サブフォームによる入力、簡易な検索
– マクロによるデータ更新処理は可能(データマクロを使う)
• 方式面– Access クライアントがなくても使用できる(カスタマイズには必要)
• データ連携– SharePoint リストとのリンクが可能
– SQL Server のデータベースとして扱える。• 外部からのデータアクセス、重いバッチ処理も可能。トリガーも使える。
• BCS で 外部リストとして参照できる。
• 配布形式としての保存– app ファイルとして保存ができる 19
Access Services 2013 でできること
• やってみます– SQL Server をのぞいてみます
– 便利なコントロールの紹介• オートコンプリート
– マスタを参照するポップアップなどに代用できる
– サブフォーム• 親テーブルの値をリンクできる
– 簡易な検索
– app 形式への保存
20
21
Access Services 2013で、出来ない事
Access Services 2013 で できないこと
• アプリケーション面– レポートの使用
– SQL の使用、 VB モジュールの使用
– パラメータクエリの使用
22
Access Services 2013 で できないこと
• データ連携の面(参照される)– データは BCS で外部リストとしない限り、リストとして見えない。
• データ連携の面(参照する)– ネイティブな SharePoint リスト以外とはリンクできない。
• 外部リスト (BCS) とのリンクなど、外部データソースは Access から見れない。
• SQL Server にテーブルを追加しても、 Access からは見えない。
– すでにあるデータベースを参照することはどうやってもできない• データ連携のアプリケーションを設計する際には、 Access が作成した SQL
Server を中心に考える必要がある。23
できないことを回避する方法
• レポート– レポート製品を別に立ち上げるなどして、ハイパーリンクコントロール
を使えばできる。帳票サーバーにアクセスする。
• データ連携– 外部DBのマスタが内部で必要なら SQL Server にデータを同期するよ
うにする。( SP とか SSDT とか)
– データ更新時に他のデータベースを更新したいのなら、 SQL Server のトリガーを使う。( CLR トリガーである必要があります。 )
24
25
Access Services の利用用途
Access Services の 利用用途
• サブフォームのいちばん早い実現
• リストの集計管理
• Access のデータを中心とするもの– すでにある外部データソースを活かすものではなく、 Access への入力
によって、データが蓄積されることがわかっているシステム。→ 全社的に展開するまえのお試しのデータベース。
→ 部署のクローズドなデータを管理・公開する。
27
まとめ
まとめ
• Access Services 2010 と Access Services 2013 は別物。
• Access Services は mdb を Web で動かせるものではない。
• Access Service 2013 は、データを SQL Server に持っていったので、外部データの参照という要件さえなければ、わりと使えるツールである。
• SharePoint 2016 ではどうなっているのかはトレースしてません ...
29
ありがとうございました
10月もがんばりましょう