Access で Web アプリを作成してカスタマイズする
重要
現在 Microsoft では、SharePoint での Access Web アプリケーションの作成や使用は推奨していません。 代わりに、web およびモバイル デバイス用のコードのないビジネス ソリューションを構築するマイクロソフトの PowerAppsを使用して検討してください。
Access 2013 には、主題の専門家が Web ベースのアプリケーションをすばやく作成できる新しいアプリケーション モデルが用意されています。 Access には、アプリケーションの作成を開始するために使用できるテンプレートのセットが含まれています。
Access 2013 でアプリを作成するための前提条件
この例の手順を実行するには、次のものが必要です。
- Access
- SharePoint 開発環境
SharePoint 開発環境の設定の詳細については、「SharePoint の一般的な開発環境の設定」を参照してください。
Access と SharePoint の入手方法の詳細については、「ダウンロード」を参照してください。
アプリを作成する
たとえば、ビジネスの問題を追跡する Access アプリを作成するとします。 テーブルとビューの作成をゼロから始める前に、ニーズを満たすスキーマ テンプレートがないかどうかを探す必要があります。
問題追跡アプリを作成するには
Access を開いて、[ カスタム Web アプリ] を選択します。
アプリの名前と、Web 上のアプリの場所を入力します。 [ 場所] リストから場所を選択し、[ 作成] を選択することもできます。
[検索するデータを指定してください。] のボックスに「問題」と入力し、[入力] キーを押します。 問題を追跡するのに役立つ場合があるテンプレートのリストが図 1 に示されています。
図 1. 問題に関する検索に一致するテンプレート
[問題] を選択します。 Access は、一連のテーブルとビューを作成します。
アプリを探索する
スキーマとビューがニーズを満たしているかどうかを確認するには、それらを調べる必要があります。
[問題] スキーマを選択することで作成されたテーブルがタイル ウィンドウに表示されます。 [問題]、[顧客]、および [従業員] テーブルがこのアプリの中心です。 [問題] テーブルには各問題の情報が格納されます。 各問題は、顧客に代わって従業員によって開かれ、従業員に割り当てられます。 [関連の問題] と [問題に対するコメント] テーブルは、アプリの中でサポートの役割を果たします。 [関連の問題] テーブルを使用して、問題同士をリンクできます。 [問題に対するコメント] テーブルには、1 つの問題に関する複数のコメントが格納されます。
Access デスクトップ (.accdb) データベースでは、テーブル間のリレーションシップが [ リレーションシップ] ウィンドウで管理されます。 Access 2013 アプリでは、 Lookup データ型に設定されたフィールドを使用して、リレーションシップを管理します。 [ 問題] タイルを右クリックし、[ テーブルの編集] を選択して、[問題] テーブルのリレーションシップを調べてみましょう。
[ 顧客 ] フィールドは [ 顧客 ] テーブルに関連付けられています。 リレーションシップを調べるには、[ 顧客 ] フィールドを選択し、[ ルックアップ] を選択します。 図 2 のように、 ルックアップ ウィザードが表示されます。
図 2. [顧客] テーブルへのリレーションシップを表示するルックアップ ウィザード
[ルックアップ ウィザード] ダイアログ ボックスでは、[ 顧客 ] フィールドが [ 顧客 ] テーブルにリンクされており、[ 名前を名姓の順で表示 ] フィールドが [ 顧客 ] テーブルから返されることが示されています。
[ 開始者 ]、[ 担当者 ]、および [ 変更者 ] フィールドは、[ 従業員 ] テーブルに関連します。 他のいくつかのフィールドも Lookup データ型に設定されています。 この場合は、Lookup データ型を使用して、フィールド内で許容される特定の値が指定されています。
[ 問題 ] テーブルを閉じて、タイル ウィンドウを調べます。 図 3 のように、上の 3 つのタイル ([ 問題 ]、[ 顧客 ]、および [ 従業員 ] テーブル用のタイル) は、下の 2 つのタイル ([ 関連の問題 ] および [ 問題に対するコメント ] テーブル用のタイル) と異なって表示されています。
図 3. [問題] スキーマのタイル ウィンドウ
[関連の問題] テーブルと [問題に対するコメント] テーブルは、Web ブラウザーでユーザーに表示されなくなるため選択不可になっています。
このアプリを使用していくつかの問題を追跡してみましょう。 これを行うには、[ アプリの起動] をクリックし、Web ブラウザーでアプリを開きます。
アプリは、[問題] テーブルの [ 問題リスト ] ビューを開きます。 問題を開く前に、いくつかの顧客と従業員を追加することをお勧めします。 [ 顧客 ] タイルをクリックし、顧客の追加を開始します。
図 4 に示されているように、ビュー セレクターを使用して、[ 顧客 ] テーブルで使用可能な 3 つのビューのうちの 1 つを選択します。[ リスト]、[ データシート]、[ グループ] とラベル付けされているビューです。
図 4. ビュー セレクター
[ リスト] を選択すると、[詳細を一覧表示] ビューである [ 顧客リスト ] ビューが起動されます。 [詳細を一覧表示] は、テーブルを作成するときに Access によって自動的に生成されるビューの 1 つです。 [詳細を一覧表示] ビューを区別する主な機能は、ビューの左側に表示されるリスト ウィンドウです。 リスト ウィンドウを使用して、ビューに含まれるレコードのフィルター処理とナビゲーションを行います。 Access デスクトップ データベースで、検索可能なリスト ビューを実装するには、ユーザー設定コードを記述する必要があります。
[ データシート] を選択すると、[ 顧客データシート ] ビューが開きます。 [データシート] は、テーブルを作成するときに Access によって自動的に生成される別の種類のビューです。 [データシート] ビューは、データをスプレッドシートのような方法で簡単に入力、並べ替え、フィルター処理ができるユーザーにとって便利なビューです。
[グループ] を選択すると、[概要] ビューが開きます。 概要ビューを使用すると、フィールドに基づいてレコードをグループ化でき、オプションとして合計または平均を計算できます。
顧客を追加する場合は、操作バーを使用して、レコードの追加、レコードの編集、レコードの保存、レコードの削除、編集の取り消しを行います。 操作バーはカスタマイズ可能なツールバーであり、図 5 のように、各ビューの上部に表示されます。
図 5. 操作バー
顧客と従業員の追加が終了した後、[問題リスト] ビューを開いて、問題の追加を開始します。 顧客の名前を [顧客] ボックスに入力すると、図 6 のように、1 つ以上の顧客名が表示されます。
図 6. オートコンプリート コントロール
[顧客] ボックスは、オートコンプリート コントロールです。 オートコンプリート コントロールでは、ボックスに入力されている内容に一致するレコードのリストが表示されます。 これにより、データ入力の正確性が確保されます。
アプリをカスタマイズする
ここまで、アプリについて紹介してきましたが、[問題リスト] ビューに顧客の連絡先情報が含まれていません。 ここで、問題を作成するときに顧客の勤務先電話番号を [問題] テーブルに追加するように、アプリをカスタマイズしてみましょう。
[問題] テーブルにフィールドを追加するには
- Access でアプリを開きます。
- [ 問題] タイル、[ 設定/アクション] アイコン、[ テーブルの編集] の順に選択します。
- [ フィールド名] 列の最初の空白セルに「 連絡先番号 」と入力します。
- [ データ型] 列で [ 短いテキスト] を選択します。
- [保存] を選択します。
- [問題] テーブルを閉じます。
電話番号を格納するフィールドが作成されました。ここで、連絡先情報を参照するためのデータ マクロを作成しましょう。
連絡先情報を参照するためのデータ マクロを作成するには
[ 作成] グループで、[ 詳細設定]、[ データ マクロ] の順に選択します。
[ パラメーターの作成] を選択します。
[ 名前] ボックスに「 CustID 」と入力します。 [ 型] ドロップダウンで、[ 数値 (浮動小数点)] を選択します。
[ 新しいアクションの追加] ドロップダウンから [ レコードの参照 ] を選択します。
[ 参照するレコードが含まれるテーブル/クエリ] ドロップダウンで、[ 顧客 ] を選択します。
[ 条件式] ボックスに「 [顧客].[ID]=[CustID] 」と入力します。
[ 新しいアクションの追加] ドロップダウンから [ 戻り変数の設定 ] を選択します。
注:
[ 新しいアクションの追加] ドロップダウンが 2 つ表示されます。1 つは LookupRecord ブロック内にあり、もう 1 つは LookupRecord ブロックの外側に表示されます。 図 7 に示すように、LookupRecord ブロック内の [新しいアクションの追加] ドロップダウンを選択する必要があります。
図 7. [新しいアクションの追加] ドロップダウン
[名前] ボックスに「ContactPhone」と入力します。
[ 式] ボックスに「 [顧客].[勤務先電話番号] 」と入力します。
[ 上書き保存] を選択します。 [ マクロ名] ボックスに「 GetContactPhone 」と入力し、[ OK] を選択します。
マクロは、図 8 のようになります。
図 8. GetContactPhone データ マクロ
マクロのデザイン ビューを閉じます。
これで、[ 連絡先番号 ] フィールドを [問題リスト] フォームに追加する準備ができました。
[連絡先番号] フィールドを [問題リスト] フォームに追加するには
- [ 問題 ] テーブルを選択します。 これにより、[問題リスト] フォームが選択されます。
- ビュー セレクターで [ リスト ] を選択し、[ 設定/アクション] アイコン、[ 編集] の順に選択します。
- [ フィールド リスト] ウィンドウからフォーム上の連絡先番号の表示場所まで [ 連絡先番号 ] フィールドをドラッグします。
- [ 連絡先番号] テキスト ボックスを選択し、[ データ] をクリックします。
- [ コントロール名] ボックスに「 CustomerContact 」と入力し、[ データ] ポップアップを閉じます。
- [保存] を選択します。
ここで、[ 勤務先電話番号 ] フィールドを [ 顧客 ] テーブルから [ 問題 ] テーブルの [ 連絡先電話番号 ] フィールドにコピーするユーザー インターフェイス (UI) マクロを記述する必要があります。 マクロの記述場所として、 CustomerAutocomplete コントロールの 更新後処理 イベントが適しています。
AfterUpdate マクロを作成するには
[ CustomerAutocomplete ] コントロール、[ アクション] ボタン、[ 更新後処理] の順に選択します。 マクロのデザイン ビューに空白のマクロが開かれます。
[ 新しいアクションの追加] ドロップダウンから [ データマクロの実行 ] を選択します。
[ マクロ名] ドロップダウンで、[ GetContactPhone ] を選択します。
[ CustID] ボックスに「 [CustomerAutocomplete] 」と入力します。
[ ローカル変数の設定] ボックスに「 電話番号 」と入力します。 以前に作成された GetContactPhone データ マクロを選択した場合、Access によってパラメーター名が自動的に設定され、マクロの変数が返されます。 顧客の電話番号は、"電話番号" という名前の変数に格納されます。
[ 新しいアクションの追加] ドロップダウンから [ プロパティの設定 ] を選択します。
[ コントロール名] ボックスに「 CustomerContact 」と入力します。
[ プロパティ] ドロップダウンで、[ 値 ] を選択します。
[ 値] ボックスに「 =[Phone] 」と入力します。
[保存] を選択します。 マクロは、図 9 のようになります。
図 9. 更新後処理マクロ
マクロのデザイン ビューを閉じます。
[問題リスト] ビューを閉じます。 変更内容の保存を求めるプロンプトが表示された場合、[ はい] を選択します。
カスタマイズをテストする準備ができました。 [アプリの起動] をクリックして、Web ブラウザーでアプリを開き、新しい問題を追加します。 [連絡先番号] ボックスは、顧客名の入力後に自動的に更新されます (図 10 を参照)。
図 10. 電話番号が更新された [問題] ビュー
まとめ
Access Web アプリの作成にすぐに着手するには、 に含まれるスキーマ テンプレートの 1 つを使用することをお勧めします。 自動的に作成されるビューには、Access デーストップ データベースへの実装にユーザー設定コードが必要とされる高度な機能が含まれています。