Accessを業務で扱う機会があり、恥ずかしながら扱ったことがなかったため、基本的な知識から調べてみました。
意外と知らなかった疑問なども、改めて知るきっかけとなりましたので、こちらに記録しておきます。
Accessって何?
-
Access(アクセス)
とは、Microsoft社
が提供するデータベースの管理ソフト
である。 -
Access
はRDBMS(リレーショナルデータベースマネジメントシステム)
の一つである。つまり、データをテーブルとして管理する。
Access VBAって何?
-
Access VBA
は、 -
VBA
はVisual Basic for Applications
の略称である。 -
VBA
はMicrosoft Office
シリーズに搭載されているプログラミング言語のことを指す。 - Access VBAを使って開発を行う際は、
開発
タブのVisual Basic
からアクセスできる(もしくはAlt
+F11
がショートカット)。 - 業務ではおそらくデータベースを取り扱うので、
SQL
の知見があると便利。
AccessとExcelの違い
- ざっくりと以下のような違いで考えれば良い。
- Accessはデータベースを取り扱うソフト
- Excelは表計算を行うためのソフト
Access VBAとExcel VBAの違い
- どちらもMicrosoft Officeソフトで使用するプログラミング言語である。
-
Excel VBA
は、Microsoft Officeシリーズの中でもExcelで使用できるプログラミング言語である。 -
Access VBA
は、Microsoft Officeシリーズの中でもAccessで使用できるプログラミング言語である。 -
Excel VBA
は、Excelの作業を自動化したりする際に使用する言語。 -
Access VBA
は、Accessの作業を自動化したりする際に使用する言語。
VBAでできること
- データの計算・操作
データの四則演算、行列操作、並べ替え、書式変更などの処理が可能です。- データの集計・分析
データの集計、分析、検索、置換などの処理が可能です。- ファイルの作成
テキストデータやCSVデータなどの外部ファイルの作成、読み込み、名称変更、保存、削除などの処理が可能です。- ウェブサイトよりデータ収集
API機能などを用いて、Webサービスから情報を取得して保存したりすることができる。
引用:案件評判BLOG
https://anken-hyouban.com/blog/2020/03/11/excelvba-accessvba/#the_post_3
マクロとVBAの違い
- 関係性が高い両者だが、別物である。
- VBA =
Microsoft 365ソフト用のプログラミング言語
- マクロ =
複数の操作をまとめて呼び出したり、プログラムを自動化するための機能
-
マクロで便利な機能を作るためにVBAというプログラミング言語を使用する
といった考え方で良いだろう。 - 結局は
マクロとVBAをセットで考える場面
が多そうである(想像)。
AccessとSQL Serverとの違い
-
Access
はRDBMS
である。 -
SQL Server
はMicrosoft SQL Server
のことであり、これもRDBMS
である。 -
SQL Server
は視覚的に操作できるGUI
を採用している。 -
SQL Server
は小規模・大規模にも対応できるデータベースシステムである。 -
SQL Server
はネットワークで情報を管理していて、時間によってバックアップすることもでき、データの復元が可能である。 -
Windows
と同じMicrosoft社
のシステムであるため、Windows Server
で利用されることが多い。 - 【補足】:
Access を SQL Server に接続する
ことも可能なようだ。 - 【補足】:データベースの種類で言うと、他にも
Oracle
やMySQL
、PostgreSQL
などがある。 - 構文や式、コンポーネントなどの表記に違いがあるようだ。
- 明確な基準があるわけではないが、大規模データベースを構築したい企業ではSQL Serverを採用することの方が多いと思われる(想像)。
- 一方、
Access
はどちらかといえば、一個人がPC上でローカルに使用するDBとして利用する
のに適しているようだ。
まず、Accessは個人がローカルで使用するDBMSとしてメリットが大きい。ザックリとした特徴だが、以下のような点が考えられる。
- デスクトップ上での動作をターゲットとしている。
- 2GB未満データを ローカルで扱うのに適している。
- データベースと管理ツールが一体化している。
- フォーム、レポート、クエリ、マクロなどの作成が容易である。
- SQLServerに比べて少ない投資でシステム構築が可能な場合が多い。
しかし、問題点としても以下のような点が考えられる。- 処理速度が遅い。(特に回線速度の遅い環境での利用時)
- 複数人で使うと、データの競合が発生する。
- 障害発生時の対処が困難である。
- DBが2GBを超えたとき、DB分割が必要となる。
- 情報漏洩、不正アクセスへの対処が難しい。
引用:DBMSの選択について
参考サイト:Microsoft サポート
参考サイト:Access を SQL Server に接続する
Accessの特徴
引用文
- プログラマから見たAccessの利点の1つは、そのSQLとの相対的な互換性である。
- クエリはSQL文として表示や編集ができる。
- そしてSQL文はAccessのテーブルを操作するためにマクロやVBAモジュールの中で直接使用できる。
- ユーザーはプログラムの形式と論理、そしてオブジェクト指向の可能性の提示のために、VBAと「マクロ」の両方を結合して使える。
- SQL文の中ではVBAと同じ演算子や関数を用いることができ、モジュール内で定義された利用者独自の関数さえも使用できる。
引用:Wikipedia
https://ja.m.wikipedia.org/wiki/Microsoft_Access
- 複雑なコードを記述しなくてもデータベースの作成ができたりといった利便性もある。
Microsoft Office Accessは、関係データベース管理システム(RDBMS)のひとつで、プログラマーでない人が使うアプリケーションとしての側面も強く、複雑なコマンドやコーディングをしなくても、データの追加や検索、変更、削除といった、データベースを作成・管理できるように工夫されています。
引用 Udemyメディア
https://udemy.benesse.co.jp/business/office/intro-access.html
Access VBAで出来ること
プログラミング言語であるため、これを使ってアプリケーションの開発ができる。
業務の自動化、簡略化、人件費削減など、Access VBAによる開発で、リソースの削減を実現できる(ざっくり)。
- 同じMicrosoftのソフトウェアであり、Excelから、データのインポートを行う。
- AccessからExcelへデータのエクスポートを行う。
- 決まったフォーマットで、レポートやドキュメントの自動生成する。
- APIなど、外部システムとの連携によってデータの取得ができる。
Accessはどこで学習できる?
参考サイトまとめ