Accessを卒業して自動生成ツールを使ってシステム化しませんか


こんにちは、RADサービス部の佐々木です。今回はAccessでの開発歴4年の私が自動生成ツールを使って感じた違いを開発者目線でご紹介していきたいと思います。自動生成ツールといっても世の中には様々ものが存在しますが、キャパではGeneXusというツールを使って開発を行っています。前回、GeneXusを使って自動で画面や、データの追加、更新、削除機能が作成されることをご紹介しました。

しかしこれらの機能はあくまでトランザクションがもつ標準的な機能で、場合によっては標準機能以外で細かいデータのアクセスが必要になるかと思います。そのような場合でもGeneXusでは非常に簡単にデータの操作が行えます。今回はそういった自動で作成される標準機能以外でのデータアクセス部分に関する内容をAccessとGeneXusで比較しながらみていき、GeneXusでシステム化するメリットについてご紹介したいと思います。

AccessとGeneXusの違い

それでは最初にAccessとGeneXusの違いについてふれたいと思います。下記にざっくりとですが違いをまとめてみました。

AccessGeneXus
OS(開発環境)WindowsWindows
OS(稼働環境)WindowsWindows

Windows Server

LINUX

UNIX

IBM OS/400

Android

iOS

アプリケーションデスクトップ系Web系

スマートデバイス

開発言語VBAGeneXus独自の開発言語

 

まず開発環境でのOSについてですが、こちらはどちらもWindowsでの開発となっています。次に稼働環境でのOSについてです。こちらはAccessがWindowsのみであるのに対してGeneXusは幅広いOSに対応していることがお分かり頂けるかと思います。アプリケーションに関してもGeneXusの場合、スマートデバイスにも対応しているためAndroid、iOSなど様々な環境で動作するアプリケーションを作成することができるため、システムの導入の際にも選択肢の幅が広がるのは嬉しいですね。

開発言語については、GeneXusの場合GeneXus独自の言語で開発を行うため習得するまでに少し時間を要してしまいますが、VBAを使っていた私の感想ではそこまで難易度が高いというような言語ではありませんでした。この後詳しくお話しますが、むしろGeneXusでの言語の方が直感的でプログラミングがしやすいという印象を受けました。そのため、VBAなどで開発を行ってきた方であればそこまでこの言語がネックになることはないのかなと思います。

 

データ操作言語の違いについて

ここからはデータの追加や、更新、削除についてお話をしたいと思います。私がAccessでシステムの開発を行っていた頃は、データ操作を行う場合当然SQL文を書いてデータの操作を行っていました。しかし、GeneXusの場合SQL文は使いません。代わりに「For Each」というコマンドを使って追加や、更新、削除を行っていきます。先ほど、GeneXusではSQL文は使わないとお話しましたが、厳密には裏でSQL文が使われています。開発者はSQL文を意識することなくデータの操作が可能になります。実際にSQL文とFor Eachコマンドを比較しながら見ていきましょう。下記にデータの取得、追加、更新、削除について簡単まとめてみました。

SQLGeneXus
取得SELECT [項目名] FROM [テーブル名]For Each

Where [項目属性] = [値]

変数 = [項目属性]

When None

EndFor

追加INSERT INTO [テーブル名]([項目名],…) VALUES([値],…)New

[項目属性] = [値]

When Duplicate

//一意制約違反時

EndNew

更新UPDATE [テーブル名] SET [項目名] = [値],… WHERE [項目名] = [値]For Each

Where [項目属性] = [値]

[項目属性] = [値]

When None

EndFor

削除DELETE FROM [テーブル名] WHERE [項目属性] = [値]For Each

Where [項目属性] = [値]

Delete

When Duplicate

//一意制約違反時

EndFor

 

以上がSQLとGeneXusでのデータ操作の比較になります。例えば、今までAccessでデータの取得を行っていた場合、まずConnectionオブジェクトを生成し、データベースとの接続をオープンにしてからRecordsetオブジェクトを作成し、そこからデータの所得を行い、最後にデータベースのとの接続をクローズにしていました。

しかし、GeneXusの場合は最初に簡単な設定でデータベースへの接続を設定でき、それ以降は上記のFor Eachコマンドを使うだけでデータ操作が可能になるため、これまでのようにConnectionオブジェクトやRecordsetオブジェクを作成する必要がありませんし、オープンやクローズといった作業を行わなくともデータの操作が可能になります。初めてGeneXusのForEachコマンドを使ってみたときは「こんなのでデータの取得なんて出来るの?」と疑っていましたが、実際に使ってみるとその簡単さに驚きました。

GeneXusの場合テーブル名は記述しなくてもFor Eachコマンドに書かれている項目属性の内容から自動的に取得するテーブルを判断し、データの取得を行ってくれます。また、GeneXusではAccessと同様に帳票作成が行えますが、その内容についてはまた別の記事で詳しくご説明させて頂きたいと思います。

まとめ

いかがだったでしょうか?私はAccessを使用して開発を行っていた頃と比べて飛躍的に業務の効率を上げることができるようになったと感じています。ただ速く作れるだけでなく開発者にとって、開発がしやすい言語やツールがそろっていることもGeneXusの魅力の一つです。

現在、Accessで開発を行っている方やこれからGeneXusを使ってみようかと思われている方にとっても、便利なツールだと言えます。今回は非常に簡単なご紹介でしたが、まだまだGeneXusでのシステムを開発の魅力はたくさんあります。みなさんもぜひGeneXusを使ってシステム化を検討されてみてはいかがでしょうか。

 

 

株式会社キャパでは、GeneXusを用いた超高速開発についてご相談を承っています。
短納期、予算が合わないなどお気軽にご相談ください。
高速開発:GeneXusのご紹介


関連記事一覧

we love develop
アプリやシステムの開発を通じて、お客様のビジネスを成長させることが私たちのビジネスです。お気軽にお問い合わせください。
 お問い合せ

お電話でのお問い合わせはこちらから
TEL:03-5297-2871

メールマガジンの登録

キャパでは誰かに話したくなるようなIT小ネタを、週に一回メルマガで配信しています。
ぜひ購読してみませんか?
 購読する

ホワイトペーパーの入手

ITブログ月間20万PV達成!自社オウンドメディアの運用ノウハウを無料公開しています。
 ダウンロード

記事カテゴリ記事カテゴリ

月別投稿記事

PAGE TOP