テーブルに複数件のデータを追加、更新、削除する

ここでは、テーブルに複数件のデータを追加、更新、削除する方法を、サンプルアプリを作成しながら説明します。
事前に以下のようなテーブルを作成しておき、このテーブルに対して複数件データの追加、更新、削除を行うようにします。

社員管理マスタ

カラム データ型
ID 整数
社員番号 文字列
名前 文字列
所属 文字列
補足 文字列
LAST_UPDATER 文字列
LAST_MODIFIED 日時

社員データ更新シートを作成する

  1. 社員管理マスタのデータを追加、更新、削除、検索を行うためのシート「社員データ更新シート」を作成します。
../../../../_images/img_0123.png
[1] 登録ボタン
クリックすると、追加された社員情報を「社員管理マスタ」に登録します。
「社員情報一覧」において、追加された社員情報のみ登録対象とします。
[2] 更新ボタン
クリックすると、変更された社員情報を「社員管理マスタ」に登録します。
「社員情報一覧」において、「名前」「所属」「補足」のいずれかが変更された社員情報を対象とし、「社員管理マスタ」の「名前」「所属」「補足」を更新します。
[3] 削除ボタン
クリックすると、「削除」列がチェックされている社員情報を削除します。
削除対象となる社員情報と「社員番号」、および、「名前」が一致する「社員管理マスタ」のデータを削除します。
[4] 全検索ボタン
クリックすると、「社員管理マスタ」からデータを取得し、「社員情報一覧」に表示します。
[5] 社員情報一覧
「社員管理マスタ」から取得した社員データを表示します。
「削除」列にはチェックボタンが表示され、チェックすると削除対象となります。
「対象」列では、「社員番号」「名前」「所属」のいずれかが変更された場合のみ true と表示されます。
[6] 作業セルエリア

データ取得処理やデータ更新処理において使用するセルのエリアです。以下の通り情報を保持しており、全てアクションセット内にて値がセットされます。

  • 件数 ・・・ 社員情報一覧に表示されているデータの件数を保持します。
  • カウンタ ・・・ 繰り返し処理において、内部的に変数として用いるカウンタの値を保持します。
  • ループ制御フラグ ・・・ 繰り返し処理において、終了条件として用いるフラグの値を保持します。
  • 更新ありフラグ ・・・ 登録、更新、削除処理が行われたか否かを示すフラグの値を保持します。アクションセット内にて値がセットされます。
[7] 社員情報一覧(変更前)
変更前の「社員情報一覧」の値を保持します。「社員情報一覧」の値が変更されたか否かを判断するために使用します。

複数件のデータを取得する

まずは、「全検索」ボタンクリック時に「社員管理マスタ」からデータを取得するアクションセットを作成します。

  1. アクションセットを新規作成し、「アクションセット設定」ダイアログを開きます。
  2. 前回の検索結果をクリアするため、社員情報一覧、および、作業セルエリアを初期化します。
../../../../_images/img_0223.png
    [1] 「社員情報一覧」をクリアします。
    [2] 「社員情報一覧(作業用)」をクリアします。
    [3] 3行目から繰り返し処理を開始するため、「カウンタ」に 3 をセットします。
  1. 「社員管理マスタ」から全データを取得し、「社員情報一覧」にセットします。
../../../../_images/img_0317.png
  1. 取得したデータの件数を取得するため、「件数」に COUNTA 関数 を用いた数式をセットして、データ件数が表示されるようにします。
../../../../_images/img_0417.png
  1. 取得したデータに対し繰り返し処理を行い、「社員情報一覧」の「削除」列と「対象」列の値をセットします。
../../../../_images/img_0516.png
    [1] データが取得できた場合のみ処理を行うための判定処理を行います。
    [2] 社員情報が変更の有無を「対象」列で判断できるようにするため、「社員情報一覧」と「社員情報一覧(変更前)」の値を比較し、変更がある場合に true を返す数式を「対象」列にセットします。(先頭行のみ)
    [3] 繰り返しの制御処理です。「カウンタ」の値が 13 以下の間、繰り返し処理を行います。
    [4] 「社員管理マスタ」に存在するデータのみ削除可能とするため、「カウンタ」-3の値が「件数」未満か否かの判定処理を行います。
    [5] 「削除」列に、チェックボックスが表示されるように、CHECK 関数を用いた数式をセットします。
    [6] 「対象」列の値をセットします。(先頭行の数式をコピー)
    [7] 「カウンタ」の値を 1 加算します。
  1. 「社員情報一覧」の値を「社員情報一覧(変更前)」にコピーします。
../../../../_images/img_0613.png
  1. アクションセットを保存します。

ちなみに

作成したアクションセットを実行すると、次のように表示されます。

../../../../_images/img_0712.png

複数件のデータを追加する

「登録」ボタンクリック時に、「社員情報一覧」に追加された情報を「社員管理マスタ」へ登録するアクションセットを作成します。

  1. アクションセットを新規作成し、「アクションセット設定」ダイアログを開きます。
  2. 作業セルエリアを初期化します。
../../../../_images/img_089.png
    [1] 3行目から繰り返し処理を開始するため、「カウンタ」に 3 をセットします。
    [2]「更新ありフラグ」に false をセットします。
  1. 「社員情報一覧」に対し繰り返し処理を行い、追加された社員情報を「社員管理マスタ」に登録します。
../../../../_images/img_098.png
    [1] データが存在する場合のみ処理を行うための判定処理を行います。
    [2] 繰り返し制御処理です。「カウンタ」の値が 13 以下の間、繰り返し処理を行います。
    [3] 登録を行うか否かの判定処理です。「社員情報一覧」の「対象」列が true で、「社員情報一覧(変更前)」の「社員番号」列が空の場合、登録対象と判定します。UTIL.CELLV 関数を用いて、各値を参照しています。
    [4] 「社員管理マスタ」に社員情報を登録します。
    [5] 登録を行った場合のみ、「更新ありフラグ」に true をセットします。
    [6] 「カウンタ」の値を 1 加算します。

ちなみに

UTIL.CELLV 関数を使用すると、行番号と列番号(番号または列名)を指定し、そのセルの値を取得することができます。(例:UTIL.CELLV(1,"A"))
  1. 「更新ありフラグ」が true の場合のみ、登録後の処理を行います。
../../../../_images/img_107.png
    [1] 「社員管理マスタ」のデータを再取得するため、データ取得を行うアクションセットを呼び出します。
    [2] 登録完了の旨のメッセージをポップアップで表示します。
  1. アクションセットを保存します。

複数件のデータを更新する

「更新」ボタンクリック時に、「社員情報一覧」にて変更された情報で「社員管理マスタ」のデータを更新するアクションセットを作成します。

  1. アクションセットを新規作成し、「アクションセット設定」ダイアログを開きます。
  2. 作業セルエリアを初期化します。
../../../../_images/img_117.png
    [1] 3行目から繰り返し処理を開始するため、「カウンタ」に 3 をセットします。
    [2] 「ループ制御フラグ」に false をセットします。
    [3] 「更新ありフラグ」に false をセットします。
  1. 「社員情報一覧」に対し繰り返し処理を行い、変更された社員情報で「社員管理マスタ」のデータを更新します。
../../../../_images/img_126.png
    [1] データが存在する場合のみ処理を行うための判定処理を行います。
    [2] 繰り返し制御処理です。「ループ制御フラグ」の値が false の間、繰り返し処理を行います。
    [3] 更新を行うか否かの判定処理です。「社員情報一覧」の「対象」列が true であるデータの場合、更新対象と判定します。UTIL.CELLV 関数を用いて、値を参照しています。
    [4] 「社員管理マスタ」のデータを更新します。「社員番号」の一致を更新条件とし、「名前」「所属」「補足」の値を更新します。
    [5] 更新を行った場合のみ、「更新ありフラグ」に true をセットします。
    [6] 「カウンタ」の値を 1 加算します。
    [7] 「社員管理マスタ」に存在するデータのみ対象とするため、「カウンタ」-3の値が「件数」を超えた場合、繰り返しの終了条件となる「ループ制御フラグ」に true をセットします。
  1. 「更新ありフラグ」が true の場合のみ、更新後の処理を行います。
../../../../_images/img_133.png
    [1] 「社員管理マスタ」のデータを再取得するため、データ取得を行うアクションセットを呼び出します。
    [2] 更新完了の旨のメッセージをポップアップで表示します。
  1. アクションセットを保存します。

複数件のデータを削除する

「削除」ボタンクリック時に、「削除」列がチェックされた社員情報を「社員管理マスタ」から削除するアクションセットを作成します。

  1. アクションセットを新規作成し、「アクションセット設定」ダイアログを開きます。
  2. 作業セルエリアを初期化します。
../../../../_images/img_143.png
    [1] 3行目から繰り返し処理を開始するため、「カウンタ」に 3 をセットします。
    [2] 「ループ制御フラグ」に false をセットします。
    [3] 「更新ありフラグ」に false をセットします。
  1. 「社員情報一覧」に対し繰り返し処理を行い、「削除」がチェックされた社員情報を「社員管理マスタ」から削除します。
../../../../_images/img_153.png
    [1] データが存在する場合のみ処理を行うための判定処理を行います。
    [2] 繰り返し制御処理です。「ループ制御フラグ」の値が false の間、繰り返し処理を行います。
    [3] 削除を行うか否かの判定処理です。「社員情報一覧」の「削除」列が true である(チェックされている)データの場合、削除対象と判定します。UTIL.CELLV 関数を用いて、値を参照しています。
    [4] 「社員管理マスタ」のデータを削除します。「社員番号」、および、「名前」が一致するデータを削除します。
    [5] 削除を行った場合のみ、「更新ありフラグ」に true をセットします。
    [6] 「カウンタ」の値を 1 加算します。
    [7] 「社員管理マスタ」に存在するデータのみ対象とするため、「カウンタ」-3の値が「件数」を超えた場合、繰り返しの終了条件となる「ループ制御フラグ」に true をセットします。
  1. 「更新ありフラグ」が true の場合のみ、削除後の処理を行います。
../../../../_images/img_163.png
    [1] 「社員管理マスタ」のデータを再取得するため、データ取得を行うアクションセットを呼び出します。
    [2] 削除完了の旨のメッセージをポップアップで表示します。
  1. アクションセットを保存します。

動画で見る

※動画内の画面は最新バージョンの CELF とは異なる場合があります。
※動画に音声はついていません。


重要

テーブルに対する更新処理(追加、更新、または、削除)については、以下の権限が必要です。

  • アプリ作成者

また、 アプリ作成者についてはテーブルに対する以下の権限が必要です。

  • 編集

テーブルの権限設定については テーブルの権限を設定する を参照してください。

../../../../_images/celf_help_mascot6.png

関連キーワード

insert、update、delete