この記事でわかること
Power Appsで入力フォームを作るとき、編集フォームを使うと手軽にSharePointリストのレコードに対して編集・保存・新規作成ができます。私が実装する際に詰まったので、この記事では以下をまとめます。
- 編集フォームの基本設定(DataSource・Item)
- 保存・リセット・新規作成ボタンの実装方法
- SubmitForm / ResetForm / NewForm の違いと使い分け
- SharePointの自動管理フィールドが編集できない理由
どんな状況で詰まったか
Power Appsで入力フォームアプリを作成する際、編集フォームの「保存」ボタンの実装でつまずきました。
編集フォームの正しい設定を把握していなかったため、「保存」ボタンを押しても保存されなかったり、新規作成のつもりが前に選んだレコードの内容が残ったままになったり、フォームに追加したフィールドが編集できなかったりと、いくつかの落とし穴にハマりました。
なぜうまくいかなかったのか
DataSource・Itemの設定が抜けていました。編集フォームはキャンバスに追加しただけでは動かず、最低限、以下の2つを設定する必要があります。
| プロパティ | 役割 |
|---|---|
| DataSource | どのSharePointリストと連携するか |
| Item | 編集対象のレコードを渡す |
この設定が抜けていると、フォームが表示されなかったり、保存時にエラーになります。
また、ギャラリーで別のレコードを選んだあとに「新規作成」ボタンを押しても、編集フォームには前に選んだレコードの内容が残ります。NewForm(編集フォーム名)を実装することで、フォームを空の新規入力状態にリセットできます。
編集フォームの基本設定手順
Step1:データソースを追加する
「データソース」からSharePointを選択し、SharePointリストが存在するサイトを選択。一覧の選択から、対象のSharePointリストを選択します。(ここではSampleListを選択しています。)


Step2:編集フォームをキャンバスに追加して、DataSourceを設定する
「挿入」タブ→「フォーム」→「編集」を選択してキャンバスに追加し、DataSourceを設定します。設定は数式バーに直接SharePointリスト名を入力してもできます。



Step3:Itemを設定する
編集フォームのItemプロパティに、編集するデータを設定する。(ここではギャラリーで選択したレコード「Gallery1.Selected」を設定)

保存・リセット・新規作成ボタンの実装
3つの関数を使い分けることで、保存・キャンセル・新規作成を実装できます。
| 関数 | 使うタイミング | 役割 |
|---|---|---|
| SubmitForm() | 「保存」ボタン押下時 | データをSharePointに保存する |
| ResetForm() | 「キャンセル」ボタン押下時 | 入力内容を元に戻す(保存しない) |
| NewForm() | 「新規作成」ボタン押下時 | フォームを空にする |
*今回は、画面の切り替えをグローバル変数「gMode」で行っているため関数の後にgModeを変更しています。
保存ボタン:SubmitForm()
「保存」ボタンのOnSelectプロパティに「SubmitForm(EditForm)」を設定します。
これにより、フォームの入力内容をSharePointリストに保存します。

キャンセルボタン:ResetForm()
「キャンセル」ボタンのOnSelectプロパティに「ResetForm(EditForm)」を設定します。
これにより、フォームの入力内容を破棄します。保存はされません。

新規作成ボタン:NewForm()
「キャンセル」ボタンのOnSelectプロパティに「NewForm(EditForm)」を設定します。
これにより、フォームを空にします。登録済みのレコードは変更されません。入れ忘れると前のデータが残ります。

補足:SharePointの自動管理フィールドとは
編集フォームの項目を選択する際に、一部のフィールドに「編集」の選択肢が出てこないことがあります。SharePointが自動で管理しているフィールドの場合は、SharePoint側が値をセットするため、基本的にPower Appsから変更することはできないようです。


代表的な自動管理フィールドは以下の3つです。
| フィールド名 | 内容 |
|---|---|
| 登録日時(Created) | レコードが登録された日時 |
| 更新日時(Modified) | レコードが最後に更新された日時 |
| 登録者(Author) | レコードを登録したユーザー |
これらはSharePointが自動でセットするため、編集フォームで表示しても読み取り専用になります。フォームに表示する必要がなければ、非表示にしておくのがおすすめです。
まとめ
この記事では、編集フォームの基本設定と、3つの関数の使い分け、SharePointの自動管理フィールドについて解説しました。
今回のポイント
- 編集フォームには DataSource と Item の設定が必須
- 保存は SubmitForm()・キャンセルは ResetForm()・新規作成は NewForm()
- 新規作成時は NewForm() を忘れると前のデータが残る
- 登録日時・更新日時・作成者はSharePointの自動管理フィールドで編集不可
Power Platformを触り始めたばかりの方に向けて、こういった詰まりポイントをこれからも発信していきます。よかったらブログをブックマークして、またのぞきに来てください。
あわせて読みたい
次のステップはこちら。1画面にギャラリーとフォームを収める方法です。



コメント