トップ回答者
データベースデザイン他について

質問
-
WinXP,VB2005EE
現在ACCESSからVB2005に移行するために勉強中ですが、次のことをVB2005で可能か、可能であればどんな項目を勉強すればよいのかを諸先輩方にヒントだけでも教えていただければと、投稿しました。
1、[新しい項目の追加] → [SQL データベース]でデータベースを作成し、[データ ソース] ウィンドウで、[新しいデータ ソースの追加] →[接続の追加] してフォームに一覧表示するところまでは出来ましたが、このDBは実行ファイル(EXE)の中に作成されたようで、外部DBにリンクさせて使用するDBを作成することが出来るのでしょうか(AccessのバックエンドDBのような)2.説明によるとクエリ作成用にMDXクエリデザイナの機能があるありましたがどの画面で、どのようにすれば MDXクエリデザイナを使えるのでしょうか
3.Projects 内のどのフォームからも呼び出すことが出来るプロシージャを作成したいのですが、クラスを作成することになるのでしょうか。(普通の画面を持ったプログラム内にメソッドを作る方法は取得しています)
4、レポートのエディター機能として「Crystal Reports」と「Reporting Serviece」機能があると聞いていますがVB2005 Express Edotion にはこの機能がないのでしょうか。
以上、 まったくの駆け出しですので、レベルを落してお答えいただければ幸いです。
回答
-
ミコシ・モンタ さんからの引用
>mdfというデータベースファイルがあるはずです。全て、AccessのバックエンドDBのような形で動きます。
とのことですが、気がつきませんでした。となると「*.mdf」ファイルだけをメール等で送信できるのでしょうか。またACEESSのようにフロントエンド側に固定的なマスターを作成することは不可能なのでしょうか。(不可能でも別段問題ありませんが)
.mdfだけを送ることも可能ですが、現在は送った先にSQL Serverがインストールされている必要があります。もう少ししたら、mdbのように送るだけでOKになるようです。SQL Server 2005 Everywhere Editionを調べてみて下さい。
フロントエンド側というと、VBのことになりますでしょうか? であれば、持つことはできません。VBからデータベースへ接続する場合は、ADO.NETを使って接続します。VBはあくまで言語としての機能しかありません。ミコシ・モンタ さんからの引用
ご解答中「Sharedで作成すれば、」とありますが、どんな勉強をすればよいのでしょうか。私には「Shared」と言うことが理解できません。またクラスなのにインスタンス化する必要がないとありますが、特別なクラスなのでしょうか。
クラスからは複数のインスタンスを作ることができ、そのインスタンスはそれぞれ独立したものです。しかし、Sharedにすると、それは独立したものではなく、みんなで共有されるものになります。みんなに共有されるということは一つあれば良いということであり、一つしかないなら、わざわざインスタンス化する必要がなく、わかってるんでシステムで面倒みますよ。というような意味です。ミコシ・モンタ さんからの引用
大変ありがとうございました。最後に「★良い回答には回答済みマークを付けよう!」と記されることがありますが、どのように操作したらよいのか、度指導いただければ幸いです。
投稿毎に「回答済み」という緑地に白のチェックマークが入ったボタンがあると思います。良い回答だと思った場合には、そのボタンを押して下さいという意味です。
これを押された投稿は、このフォーラムで検索した際に、回答済みとして上位に表示されます。また、このチェックを目印に、検索者が良い回答を素早く見つけることができるようになります。
なので、良いと思った回答だけにチェックを付けるようにして下さいね。 -
Microsoft SQL Server 2005 Express Edition with Advanced Services
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=4C6BA9FD-319A-4887-BC75-3B02B5E48A40
Access からということですが、実は SQL Server 2005 Everywhere Edition の開発がされています。
これは SQL Server 2005 のインスタンスが必要なく、MDF ファイルだけで動作する仕組みの実現を目指しているものです。
Microsoft SQL Server 2005 Everywhere Edition Tools for Visual Studio 2005 Service Pack 1 Beta - 日本語
http://www.microsoft.com/downloads/details.aspx?FamilyID=61289b5d-af86-45dd-8962-e7dcc5221796&DisplayLang=ja
また、Standard Edition をという話ですが、SQL Server 2005 Enterprise Edition 180日間 限定評価版を試してみてはいかがでしょうか?
ちょいと Enterprise Edition だけしか使えない機能もありますので注意が必要ですが。
http://www.microsoft.com/japan/sql/downloads/trial-software.mspx
機能の違いは SQL Server 2005 機能紹介を参照ください。
http://www.microsoft.com/japan/sql/prodinfo/features/default.mspx
すべての返信
-
1.EXEの中に作成されていません。mdfというデータベースファイルがあるはずです。全て、AccessのバックエンドDBのような形で動きます。
2.サーバーエクスプローラでそのデータベースファイルを追加し、右クリックからクエリの追加ができます。また、TableAdapterを作成するウィザードなどで、クエリデザイナのような画面があります。
Microsoft SQL Server Management Studio Express
http://www.microsoft.com/downloads/details.aspx?familyid=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796&displaylang=jaというツールもあります。
3.クラスを作成します。そのメソッドをSharedで作成すれば、そのクラスをインスタンス化する必要はありません。
4.ありません。
Visual Studio 2005 Standard Edition / Express Edition の機能比較
http://www.microsoft.com/japan/msdn/howtobuy/vs2005/editions/stdexp/#stdexp_feature -
- ODBC リンクならばという前提ならば SQL Server 2005 Express に作成した MDF を sp_attach_db で登録して使うことが可能です。
User Instance/AttachDBFilename などの接続文字列では NG だということです。 - Express にはありません。
- 利便性・生産性を考えるとデータベースへの操作をつかさどるクラスを作成することをお勧めします。
- Express にはありません。Reporting Services のエディタは SQL Server 2005 Express Advanced Edtion に同梱されているはずですのでそちらを試してください。
- ODBC リンクならばという前提ならば SQL Server 2005 Express に作成した MDF を sp_attach_db で登録して使うことが可能です。
-
trapemiya さま。早速の解凍ありがとうございました。
おかげさまで、全体のVB。Net が理解できるようになりました。trapemiya さまにとっては初歩的な質問だと思いますが、勉強中の私には、大変ありがたいご指導で、これからの勉強する方向がわかり、大変助かります。>mdfというデータベースファイルがあるはずです。全て、AccessのバックエンドDBのような形で動きます。
とのことですが、気がつきませんでした。となると「*.mdf」ファイルだけをメール等で送信できるのでしょうか。またACEESSのようにフロントエンド側に固定的なマスターを作成することは不可能なのでしょうか。(不可能でも別段問題ありませんが)>サーバーエクスプローラでそのデータベースファイルを追加し、右クリックからクエリの追加ができます。
ありがとうございました。勉強します。>クラスを作成します。そのメソッドをSharedで作成すれば、そのクラスをインスタンス化する必要はありません。
ご解答中「Sharedで作成すれば、」とありますが、どんな勉強をすればよいのでしょうか。私には「Shared」と言うことが理解できません。またクラスなのにインスタンス化する必要がないとありますが、特別なクラスなのでしょうか。大変ありがとうございました。最後に「★良い回答には回答済みマークを付けよう!」と記されることがありますが、どのように操作したらよいのか、度指導いただければ幸いです。
-
ミコシ・モンタ さんからの引用
>mdfというデータベースファイルがあるはずです。全て、AccessのバックエンドDBのような形で動きます。
とのことですが、気がつきませんでした。となると「*.mdf」ファイルだけをメール等で送信できるのでしょうか。またACEESSのようにフロントエンド側に固定的なマスターを作成することは不可能なのでしょうか。(不可能でも別段問題ありませんが)
.mdfだけを送ることも可能ですが、現在は送った先にSQL Serverがインストールされている必要があります。もう少ししたら、mdbのように送るだけでOKになるようです。SQL Server 2005 Everywhere Editionを調べてみて下さい。
フロントエンド側というと、VBのことになりますでしょうか? であれば、持つことはできません。VBからデータベースへ接続する場合は、ADO.NETを使って接続します。VBはあくまで言語としての機能しかありません。ミコシ・モンタ さんからの引用
ご解答中「Sharedで作成すれば、」とありますが、どんな勉強をすればよいのでしょうか。私には「Shared」と言うことが理解できません。またクラスなのにインスタンス化する必要がないとありますが、特別なクラスなのでしょうか。
クラスからは複数のインスタンスを作ることができ、そのインスタンスはそれぞれ独立したものです。しかし、Sharedにすると、それは独立したものではなく、みんなで共有されるものになります。みんなに共有されるということは一つあれば良いということであり、一つしかないなら、わざわざインスタンス化する必要がなく、わかってるんでシステムで面倒みますよ。というような意味です。ミコシ・モンタ さんからの引用
大変ありがとうございました。最後に「★良い回答には回答済みマークを付けよう!」と記されることがありますが、どのように操作したらよいのか、度指導いただければ幸いです。
投稿毎に「回答済み」という緑地に白のチェックマークが入ったボタンがあると思います。良い回答だと思った場合には、そのボタンを押して下さいという意味です。
これを押された投稿は、このフォーラムで検索した際に、回答済みとして上位に表示されます。また、このチェックを目印に、検索者が良い回答を素早く見つけることができるようになります。
なので、良いと思った回答だけにチェックを付けるようにして下さいね。 -
trapemiya さん。ご丁寧なお返事ありがとうございました。
>VBはあくまで言語としての機能しかありません。
VBの中にはTXTデータやデータベースを持たない、ただのプログラムであることをよく理解できました。(ACCESSと混同していました)また、おかげさまでクエリエディタを起動させてSQLを作成できるようになりました。
>Sharedにすると、それは独立したものではなく、みんなで共有されるものになります。
クラスの作成は、初心者に難しく感じますが、Sharedにして作成できるようがんばってみます。trapemiya さん。本当にご丁寧なご解答ありがとうございました。先輩諸氏にはなんでもないことなのでしょうが初心者にとっては1つけつまずくと前に進めなく、ついつい挫折しそうになり、なれたACCESSから脱皮できなくなってしまいます。これからも私のような初心者に対してもよろしくご指導下さい。今回の質問に関しては図書館で調べたり本を買ったりしましたが、あまりにもたわいない質問だったのでしょうか、3日かかっても解決できず、困っていました。本当に感謝しています。
-
おがわみつぎ 様。早速のご指導ありがとうございました。
>Reporting Services のエディタは SQL Server 2005 Express Advanced Edtion に同梱されているはずですのでそちらを試してください。
とのことですが、SQL Server 2005 Express Advanced Edtion は無償でダウンロードできるのでしょうか?
いずれスタンダードを購入するつもりですが、ACCESSからの脱出が可能と分かった時点で購入するつもりなのでとりあえず無償ダウンロードを期待しているのですが、もしご存知なら教えてください。 -
Microsoft SQL Server 2005 Express Edition with Advanced Services
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=4C6BA9FD-319A-4887-BC75-3B02B5E48A40
Access からということですが、実は SQL Server 2005 Everywhere Edition の開発がされています。
これは SQL Server 2005 のインスタンスが必要なく、MDF ファイルだけで動作する仕組みの実現を目指しているものです。
Microsoft SQL Server 2005 Everywhere Edition Tools for Visual Studio 2005 Service Pack 1 Beta - 日本語
http://www.microsoft.com/downloads/details.aspx?FamilyID=61289b5d-af86-45dd-8962-e7dcc5221796&DisplayLang=ja
また、Standard Edition をという話ですが、SQL Server 2005 Enterprise Edition 180日間 限定評価版を試してみてはいかがでしょうか?
ちょいと Enterprise Edition だけしか使えない機能もありますので注意が必要ですが。
http://www.microsoft.com/japan/sql/downloads/trial-software.mspx
機能の違いは SQL Server 2005 機能紹介を参照ください。
http://www.microsoft.com/japan/sql/prodinfo/features/default.mspx -
おがわみつぎさま。大変親切なご指導ありがとうございました。
早速SQL Server 2005 Express Advanced Edtion をダウンロードしました。このとき次のような「IIS機能要求警告」が表示されましたが、問題ないでしょうか。(インストールは無事終了しました)「Microsoft インターネットインフォメーションサービス(IIS)がインストールされていないか、又は無効になっています。・・・・」
まだ、SQL Server 2005 Express Advanced Edtion の機能を使っていませんが、これから勉強します。> SQL Server 2005 のインスタンスが必要なく、MDF ファイルだけで動作する仕組みの実現を目指しているものです。
とのことですが、MDFファイルは各事業所からメールで送信してもらい、本部では各事業所と同一のソフトを使って検証することを考えておりますので、MDF ファイルだけで動作するすることはないと考えています。大変有意義なご指導ありがとうございました。このスレッドをコピーして大切に保存させていただきます。
-
Microsoft SQL Server 2005 Express Edition with Advanced Services は Reporting Services が使えます。
ですので、先に IIS をインストールしておくことが重要です。
IIS のインストールが終わったら、Microsoft SQL Server 2005 Express Edition with Advanced Services をインストールしてください。
※もう入れてしまった場合は、再インストールしてください。MDF のコピーを送ってもらうという話ですが、OS の Connection Pooling が悪さする可能性が大です。
sp_detach_db でデータベースを切り離しを行うか、BACKUP DATABASE を使ってデータベースのバックアップを送ってもらったほうが無難でしょう。
Connection Pooling の悪さの話は、ASP.NET で SQL Server 2005 Express を使った場合、顕著に出ますので、ご注意あれ。