質問: vbでsql-serverをプログラムする vbでmdbファイルを操作するプログラムを勉強していますが、データベースをサーバー管理するならば、accessではなくsql-serverなどを使った方が良いと聞きました。 質問なんですが、 sql-serverには、accessと同じようにユーザーフォームを使ってデータベースシステムを構築するような機能が付いているのでしょうか? そもそもoracle、dbase、sql-serverといったデータベースソフトは、dbそのものを作成するソフトであって、dbシステムを構築するにはvbなどによるプログラム開発が必要なのでしょうか? 分かりにくい質問ですみません。
回答: access.mdb は、基本的にスタンドアロンを想定。 sql server は、クライアント/サーバーソリューション向けの言語。 よって、サーバーを構築・管理する sql server xxxとクライアントアプリケーションを開発するツール群という関係が存在。 さて、sql sever と親和性が高いフロントエンド開発ツールはaccessかと思います。 以下、この辺りの事情をまとめた文章を紹介しておきます。 「access97以前のバージョンでは、データベースアクセスのプログラムにdao(data access object)が推奨されていたが、 aceess 2000からは、ado(activex data object)が推奨されるようになった。これは、mdbデータベース、sql severともに対応し、一応はdaoとrdo(remote data object)もサポートされているものの、今後の開発は基本的にadoに集約される。 adoは、・・・適応領域がrdbmsだけでなく、さまざまなデータソースに対してole db(object linking and embedding db)を経由してアクセスできる。今後の開発には、なるべくadoを利用すべきだろう。」(クボタシステム開発 河端善博氏) 「aceess 2000から『microsoft accessプロジェクト』形式による保守が可能となりました。 accessプロジェクトを使うとaceess 2000とsql server7.0の親和性をより向上させ、accessデータベースを作る感覚でc/sシステムの構築ができます。・・・accessプロジェクトは、c/sシステム構築の新たな開発環境として、大きな進化を遂げたのは確かです。今後にも大いに期待できるものであることは間違いありません。」(インフォネット開発 本田剛氏) 「microsoft office 2000/visual basic プログラマーズガイド」(以下、「office 2000 ガイド」と略)をみて見ましょう。 「adoは、各種データベースを利用できるように、microsoftで新しく開発された上位レベルプログラミングインターフェースです。 adoは、microsoftの強力な最新のデータアクセステクノロジーであるole dbを利用するための、アプリケーションレベルの使いやすいプログラミングインターフェースとして設計されています。」(office 2000 ガイド 622頁) 「accessの以前のバージョンでは、sql serverなどのデータベースサーバーへリンクするためにodbcドライバを使用する、リンク付けされたテーブルが含まれた.mdbファイルを作成するというのが唯一のクライアント/サーバーソリューションの作成方法でした。・・・aceess 2000では、・・・新しいファイル形式およびデータアクセス構造にも対応しており、jetデータベースエンジンを読み込むことなく、 ole dbを介してsql server6.5またはsql server7.0に接続するクライアントアプリケーションを作成できます。それには、.adpの拡張子で保存するaccessプロジェクトファイルを作成します。 accessプロジェクトでは、フォーム、レポート、マクロ、vbaモジュールをローカルでクライアントソリューションファイルに保存でき、 ole db接続を使用してsql server に保存されているテーブル、ビュー、リレーションシップ、ストアドプロシージャを表示し、またそれらを使用した作業を行います。そして、accessデータベースでフォーム、レポート、マクロ、vbaモジュールを作成します。これにより、sql serverバックエンドに直接アクセスするクライアント/サーバーソリューションを素早く作成することができます。」(「office 2000 ガイド」772頁) このようにaceess 2000は、「sql serverバックエンドに直接アクセスするクライアント/サーバーソリューションを作成する環境を提供した」と見ることができます。