2022.03.22
サンプルシナリオ Access関連 Excel関連
Accessの在庫管理テーブルでInsertを行うサンプルシナリオ

ExcelファイルのデータをAccessファイルに取り込むサンプルシナリオとなります。

SQLを作成せずに、Accessファイルのテーブルへデータ登録することができます。

本サンプルシナリオをダウンロードする前にこちらの注意事項を必ずご確認ください。

サンプルシナリオ概要

はじめに

Accessの在庫管理テーブルでInsertを行うサンプルシナリオについて説明します。

注意事項

本サンプルシナリオ利用時の注意事項はこちらです。

本サンプルシナリオの概要

本サンプルシナリオは、以下の処理を行います。

  • Excelファイルの最終行を取得します。
  • 以下の処理を、Excelファイルの行数分実行します。
    • Excelファイルから納品データを1行分読み込み、変数に格納します。
    • Excelファイルから取得した値を使用し、Accessファイルの在庫テーブルに登録します。
  • 使用したAccessとExcelファイルを閉じます。

使用するWinActorモジュール

本サンプルシナリオでは、以下のWinActorモジュールを使用します。

  • ノード/ユーザ/待機ボックス
  • 01_WinActor制御/02_シナリオ制御/シナリオ停止.ums6
  • 07_文字列操作/03_連結/文字列の連結(5つ).ums6
  • 18_Excel関連/01_ファイル操作/Excel操作(保存なしで閉じる).ums6
  • 18_Excel関連/03_行列操作/Excel操作(最終行取得 その1).ums6
  • 18_Excel関連/03_行列操作/Excel操作(行の読み取り).ums6
  • プチライブラリ/Access操作(ファイルを保存なしで閉じる)
  • プチライブラリ/Access操作(単一行Insert)
    (プチライブラリはこちらからダウンロードできます)

    本サンプルシナリオの想定レベル

    本ドキュメントは、以下の技術レベルのユーザを対象としています。

    • Accessでテーブルを作成したことがある。

    動作確認環境

    本サンプルシナリオは以下の環境で動作確認しています。

    • Windows 10、WinActor 6.3.2、Microsoft Access 365、Microsoft Excel 365
    • Windows 10、WinActor 7.3.1、Microsoft Access 365、Microsoft Excel 365

    制約事項

    • 本サンプルシナリオを連続して動作させると、データが登録されてる状態になっているため処理が中断されます。再度処理を実施したい場合はデータを全件削除してください。

    本サンプルシナリオの前提条件

    • 在庫管理ファイルの在庫テーブルにデータが登録されていない状態にしてください。
    • 「在庫テーブル用データ.xlsx」の商品IDが重複しないように作成してください。

    本サンプルシナリオの使い方

    本サンプルシナリオの実施方法は以下の通りです。

    Step1.登録データ準備

    在庫テーブルに登録するための納品データをExcelで作成します。
    本サンプルシナリオでは以下の在庫テーブルに納品データを登録します。

    在庫テーブル
    フィールド名: データ型

    • 商品ID:数値[十進型]13桁 (主キー)
    • 商品名:短いテキスト(255文字)
    • 在庫数:数値型(既定値:0)
    • 当月入庫数:数値型(既定値:0)
    • 当月出庫数:数値型(既定値:0)
    • 更新日時:日付/時刻型(既定値:Now())

    本サンプルシナリオの「在庫テーブル用データ.xlsx」で商品IDが重複しないように登録します。
    本サンプルシナリオではデータが10件用意されています。

    Step2.登録データ配置

    作成した納品データを本サンプルシナリオのあるフォルダに配置します。

    Step3.WinActorで本サンプルシナリオを読み込み

    WinActorを起動し、本サンプルシナリオを読み込みます。

    Step4.動作に必要な変数の設定・変更

    本サンプルシナリオを実行するために必要な値を、変数一覧で設定・変更します。
    以下の変数を必要に応じて設定・変更してください。

    • 在庫ファイルパス
      • InsertするAccessファイルを絶対パスまたは相対パスで指定してください。
        (例) 在庫管理ファイル.accdb

    • テーブル名
      • Insert対象のテーブル名を指定してください。
        (例) 在庫テーブル

    • 挿入対象列名
      • Insertで使用する列名をカンマ区切りで指定してください。
        (例) 商品ID,商品名,在庫数,当月入庫数

    • Insert用データファイルパス
      • Insert用のExcelファイルを絶対パスまたは相対パスで指定してください。
        (例) 在庫テーブル用データ.xlsx

    18400_input01.png
    変数一覧画面

    Step5.WinActorで本サンプルシナリオを実行

    本サンプルシナリオを実行します。
    本サンプルシナリオで用意した「在庫テーブル用データ.xlsx」にあるデータをすべて在庫テーブルに登録するまで、サンプルシナリオはループします。

    Step6.サンプルシナリオ実行終了後の確認

    在庫テーブルに「在庫テーブル用データ.xlsx」のデータがすべて格納されていることを確認してください。

    トラブルシューティング

    本サンプルシナリオでは、変数指定が不十分であった場合、エラーメッセージが出力されます。
    詳細については、エラーメッセージ一覧を参照してください。

    サンプルシナリオ解説

    本サンプルシナリオで使用している実装テクニックについて解説します。

    1.入力ファイル(納品データ)の形式

    在庫テーブルに登録するための「在庫テーブル用データ.xlsx」の「Insert用(納品データ)」シートの形式は以下の通りです。

    1行目…列タイトル(セルA1から順番に[納品日,商品ID,商品名,在庫数])
    2行目以降…列タイトルに合わせて入力します。
     納品日:YYYY年MM月DD日
     商品ID:13桁の数値(書式はユーザ定義で「0000000000000」に指定してあります。)
     商品名:255文字までの文字列
     在庫数:1以上の整数値

    商品IDが空白になった時点でサンプルシナリオは繰り返し処理を終了します。
    また、商品IDは重複しないように入力します。在庫テーブルは商品IDが主キー(重複なし)です。

    2.在庫テーブルへのInsert

    「在庫テーブル用データ.xlsx」から[,商品ID,商品名,在庫数]のデータを取得して1行ずつ登録します。

    在庫テーブルの列は「商品ID,商品名,在庫数,当月入庫数,当月出庫数,更新日時」と6つの項目から構成されています。
    6つの列すべてを指定してInsertもできますが、本サンプルシナリオでは主キーである「商品ID」と「商品名」「在庫数」「当月入庫数」を指定して登録しています。
    納品データとして作成しており、当月出庫数は0を設定しています。
    当月出庫数を指定しない場合は、既定値が「0」のため自動で「0」が設定されます。
    また、「更新日時」も既定値が「Now()」と現在日時が入ります。

    6つの列をすべて指定する場合以下の変数の初期値を変更します。
     挿入対象列名:商品ID,商品名,在庫数,当月入庫数,当月出庫数,更新日時

    また挿入値は以下のように編集されるようにサンプルシナリオを修正します。

    (例)
     挿入値:4900000000001,商品データ001,10,10,0,2022/02/15
    挿入値は「文字列の連結」ライブラリを使い、並び順は挿入対象列名に合わせて連結します。

    上記例は在庫テーブル用データ.xlsxの1件目のデータ部分から取得して編集しています。
    商品ID:4900000000001 ([商品ID])
    商品名:商品データ001 ([商品名])
    在庫数:10 ([在庫数])
    当月入庫数:10 ([在庫数])
    当月出庫数:0 (固定)
    更新日時:2022/02/15 15:05:02 (当日日時)

    変更履歴

    版数日付修正内容
    版数
    1.0版
    日付
    2022/3/22
    修正内容
    初版

    本サンプルシナリオをダウンロードする前にこちらの注意事項を必ずご確認ください。

    "Access関連"に関連するその他のサンプルシナリオ

    サンプルシナリオ一覧へ戻る
    このウェブサイトでは、お客様に最適なユーザー体験を向上するためにCookieを使用しています。
    本サイトをご利用いただくことにより、お客様がCookieの使用に同意されたものとみなします。
    弊社のCookieの使用に関する方針の詳細は、
    「プライバシーポリシー」をご確認ください。