- ベストアンサー
VBでSQL-serverをプログラムする
VBでmdbファイルを操作するプログラムを勉強していますが、データベースをサーバー管理するならば、AccessではなくSQL-serverなどを使った方が良いと聞きました。 質問なんですが、 SQL-serverには、Accessと同じようにユーザーフォームを使ってデータベースシステムを構築するような機能が付いているのでしょうか? そもそもOracle、dBase、SQL-serverといったデータベースソフトは、DBそのものを作成するソフトであって、DBシステムを構築するにはVBなどによるプログラム開発が必要なのでしょうか? 分かりにくい質問ですみません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
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バックエンドに直接アクセスするクライアント/サーバーソリューションを作成する環境を提供した」と見ることができます。
お礼
ちょっと難しいです・・・。ですが、大体分かりました。SQLはAccessのようなスタンドアローンのDBソフトではないのですね。 ありがとうございました。