スポンサーリンク

データが増えたらExcelからAccessへ移行をお勧めする3つの理由

SQLの使い方
Excelは大量データの処理は向いていない
リリ
リリ

データが増えたら、ExcelよりもAccessで管理するのを、お勧めするにはどんな理由があるの?

SE
SE

Excelは、とても良いソフトなんだけれど、ある程度データ量が増えたらAccessに切り替えるのをお勧めするのには、下記のような理由があるよ。

スポンサーリンク

処理速度を向上させるため

SE
SE

Excelの表は100万行を超えるまでデータを扱えるようになったけれど、主キーやインデックスなどを付加できないから、複雑な検索や集計には時間がかかってしまうんだ。

リリ
リリ

確かに、そうかもね~

SE
SE

だから、元データはAccessで管理して、必要なデータだけAccessから抽出したものを、Excelで加工するといった使い方の方が効率的だし、安心なんだよ。

処理速度はAccessの方がよい

ヒューマンエラーを防ぐため

リリ
リリ

二つ目の理由は何?

SE
SE

二つの目の理由は、意図していないところにデータを入力したり、消してしまったりする可能性が高いということだよ。元データを集計しようとして、別シートにコピーや貼り付けを繰り返していたら、いつの間にか元データを加工してしまって、元に戻せないなんてこともよくあるんだ。

リリ
リリ

ついつい、やってしまうかも~。

ヒューマンエラーはAccessの方が防ぎやすい
SE
SE

この点からも、元データはAccessで管理して、必要なデータだけAccessから抽出したものを、Excelで加工した方が、安全だと言えるね。

データの整合性を保つため

リリ
リリ

三つ目の理由は何?

SE
SE

少し専門的な話になるけど、Excelでは項目のデータ型を厳密に管理できないため検索などで不具合が発生する場合があるんだ。

リリ
リリ

どういうこと?

SE
SE

例えば、入力ミスを防ぐために、Excelで下記のような入力画面を作るとするよね。(Excel上級者はユーザがシートを直接編集できないようするため、入力画面(フォーム)を利用して、ADOなどでデータを書き込む方法をとることがあります)

社員登録
社員登録
SE
SE

そして、[保存]ボタンを押した時に、データを保存する下記のようなプログラムを書くとする。

    Dim Rs As New ADODB.Recordset

    Rs.Open "SELECT * FROM [T_社員マスタ$]", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\username\Documents\ibrainsys_Product\Data_xlsx\IBSDATA20210709_003.xlsx;Extended Properties='EXCEL 12.0;HDR=YES'", adOpenDynamic, adLockOptimistic
    'シートに書き込む
    Rs.AddNew
        Rs!社員ID = Me.社員ID '1
        Rs!社員コード = Me.社員コード 'D001
        Rs!社員名称 = Me.社員名称 '山田 太郎
    Rs.Update
    
    Rs.Close: Set Rs = Nothing
SE
SE

上記のプログラムを実行すると下記のように、Excelシートに行が追加されるんだ。

Excelシート
リリ
リリ

おおすごい。入力画面からシートにデータが登録されている。

SE
SE

確かに、Excelのフォームは便利な機能だね。でも、限界がある。例えば、上記の例だと「社員ID」は数値という認識が一般的だよね。でも、実はExcelだと上記のプログラムだけでは、テキスト型で扱われてしまうんだ。それで、社員IDは数値型だと思って、データ抽出するSQL文を書くと、エラーが発生するんだよ。

    Dim Rs As New ADODB.Recordset
    
    Rs.Open "SELECT * FROM [T_社員マスタ$] WHERE 社員ID=1", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\taked\Documents\ibrainsys_Product\Data_xlsx\IBSDATA20210709_003.xlsx;Extended Properties='EXCEL 12.0;HDR=YES'", adOpenDynamic, adLockOptimistic
    
    If Not (Rs.EOF And Rs.BOF) Then
        Rs.MoveFirst
        Debug.Print Rs!社員名称
    End If
    
    Rs.Close: Set Rs = Nothing
リリ
リリ

なるほど。データ型を厳密に指定できないことは、思ってもいないエラーに遭遇することになるんだね。

SE
SE

そのとおりだよ。Accessであればテーブルのデータ型を強制的に指定できるから安心なんだ。だからExcelで管理しているデータがある程度増えてきたらAccessに切り替えることがお勧めなんだ。

リリ
リリ

納得したよ。でも、Accessで自分で管理するのは難しそうだね。どうしたらいいの?

SE
SE

確かにそうかもしれないね。そのような場合は、下記のシステム会社に相談するといいよ。相談や見積もりは無料だから安心だね。

無料 売上管理 フリーソフト カスタマイズ対応型 販売管理
標準利用無料で、納品書や請求書を簡単に作成できる売上管理ソフト(カスタマイズ対応型 販売管理ソフト)を開発し提供しています。一括メール送信機能やRFM分析機能など、便利な機能もたくさんついています。カスタマイズ対応型 販売管理ソフトなので、ソース公開版もあります。

リリ
リリ

そうなんだ。でもどうして、株式会社インサイトブレインシステムがお勧めなの?

SE
SE

だって、私が運営している会社だからよ(笑)。

優良業者・専門家の比較・紹介サイト「ストラテ」にインタビューが掲載されているから参考にしてね。

リリ
リリ

それなら、安心だね!!

Accessで作成された無料でも利用できる便利な売上仕入在庫管理ソフトは下記から取得できます。

無料 売上管理 フリーソフト カスタマイズ対応型 販売管理
標準利用無料で、納品書や請求書を簡単に作成できる売上管理ソフト(カスタマイズ対応型 販売管理ソフト)を開発し提供しています。一括メール送信機能やRFM分析機能など、便利な機能もたくさんついています。カスタマイズ対応型 販売管理ソフトなので、ソース公開版もあります。

コメント

タイトルとURLをコピーしました