VBを使ってる初心者です【SQL】【Access】

このQ&Aのポイント
  • VisualStudioとAccessの関係についての疑問と、データ抽出アプリの作成方法についての質問です。
  • 具体的には、VisualStudio、SQL、Accessのそれぞれの役割や関係、データ抽出の方法について知りたいとのことです。
  • また、Accessのデータベースの形式についても、空とWebのどちらが有効かについても教えて欲しいとのことです。
回答を見る
  • ベストアンサー

VBを使ってる初心者です【SQL】【Access】

VisualStudio2008で、Access2010のデータベースからデータ抽出を行えるアプリを作っています。 このときSQL文を用いてAccessからデータ抽出を行うんですかね? そもそもVisualStudio、SQL、Accessそれぞれがどのように関係しているのかわかりません。 いくつかサイトを見て回ったのですが・・・ 教えてほしいこと 1. データ抽出アプリを作るにあたってVisualStudio、SQL、Accessの各々がどのような役割を果たすか 2. Accessのデータベースの形式は空or Webどちらが有効なのか 3. VisualStudioでデータの抽出を行う方法 長くなりましたがよろしくお願いします。 開発言語はVBで、私自身は簡単なプログラムであれば理解できるレベルです

質問者が選んだベストアンサー

  • ベストアンサー
  • shockatz
  • ベストアンサー率80% (153/191)
回答No.1

ACCESSというアプリケーションは、 フロントエンド部分 バックエンド部分(Het OLEDBデータベースエンジン) データベースファイル(MDB) の3つから出来ています。 VS(Visual Studio)を使う場合、Jet OLEDBはVisual Studioに含まれていますので、ACCESSは特に不要です。MDBファイルさえあれば良いです。 MDBファイルは、ACCESSで使用されているもので、データが入っていてもかまいません。またVS側から挿入・編集・削除することももちろん可能です。 SQL文は、VSがJetOLEDBを通してMDBを読みだす際に使用しますが、VSには複数のDAO(データベース・アクセス・オブジェクト)があって、その中の最も低水準のアクセス手段がSQLの直書きです。 新しいものになるほど、ウィザードだけでほとんどSQLの記述を必要としないようになります。 (その場合でも、細かいDB操作などのためにSQLによるアクセスは可能になってます) Jet OLEDBは、現在、VisualStudioが使用できるデータベースの中で最も低レベルのものであり、DAOの中にはすでにJet OLEDBをサポートしていないものも多いです。 VSからJet OLEDBを使うには、古い順に SQLCommand(VS2003) DataAdapter(VS2003) TableAdapter(VS2005) 3つの方法があり、これ以上新しい LINQ for SQL(VS2008 SP) Entity Framework(VS2008 SP) ではJet OLEDBはサポート外です。 これから学習されるのであれば、古臭いSQLCommandなど使用せず、最低でもTableAdapterによる利用です。 ネット上にあるリソースはほとんどSQLCommandを使ったケーースなので、この書籍が一押しです。 http://www.amazon.co.jp/Microsoft-Visual-Studio-2005%E3%81%AB%E3%82%88%E3%82%8BWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E6%A7%8B%E7%AF%89%E6%8A%80%E6%B3%95-%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88%E3%82%B3%E3%83%B3%E3%82%B5%E3%83%AB%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%83%86%E3%82%AF%E3%83%8B%E3%82%AB%E3%83%AB%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA/dp/4891005157/ref=cm_cr_pr_product_top

hujii1990
質問者

お礼

詳しい回答をありがとうございました!

関連するQ&A

  • VBとSQLで、、、、

    私は最近ソフトウェアの開発に携わることになりました。 私自身プログラミングの経験は全くありません。 何を命じられたのかといいますと、VBとSQLをつかって、サーバー上の  データベースにクライアントからアクセスして、ほしいデータだけをもってくる  業務を支援するようなソフトを作るのです。 例えば、ユーザーが日付の範囲だけをいれると、その間に店を訪れた人のすんでい  る地域別、さらにそのお客の年代別で何人いるのかというようなものが  ボタンひとつでだせるようなものなんです。 まったく知識がなくてとりあえずVBの基本とSQLコマンドの本を片手に  やっています。(あと、アクセスでおおよそのデータベースについて学びまし  た) で、結局何がいいたいのかと申しますと、VBとSQLを利用したデータベースの  構築に関する良い文献を紹介していただきたいのです。 VBは初心者なのでとりあえず、それようのものを。 あと、ストアドというものを駆使するらしいので、それについての詳しい本を  紹介してください。サイトなんかでもよいです。 それでは、よろしくお願い致します。  (多分、質問の内容もわけのわからないことを言ってるかもしれません^^;)

  • VB.NETとACCESSについて

    VB.NETを使ってACCESSデータベースに入っているレポート(印刷プレビュー)を呼び出して印刷したいのですが、どうしたらいいかわかりません。VB.NETでデータベースに接続してSQLのinsert文でデータを追加することはできます。その後、VB.NETでデータベースに入っているものを印刷するにはどうしたらいいのでしょうか?ACCESSでレポートは作ってあります。どなたか教えていただけないでしょうか?

  • VBでSQL-serverをプログラムする

    VBでmdbファイルを操作するプログラムを勉強していますが、データベースをサーバー管理するならば、AccessではなくSQL-serverなどを使った方が良いと聞きました。 質問なんですが、 SQL-serverには、Accessと同じようにユーザーフォームを使ってデータベースシステムを構築するような機能が付いているのでしょうか? そもそもOracle、dBase、SQL-serverといったデータベースソフトは、DBそのものを作成するソフトであって、DBシステムを構築するにはVBなどによるプログラム開発が必要なのでしょうか? 分かりにくい質問ですみません。

  • VBでSQLサーバーへ接続できない

    WVD2008ではSQLサーバーへ接続できて、データも表示できるのに、 VB2008からは最初の設定画面がわかりません。 添付の図は 右:WVD 左:VB です。 WVDは データソース:Microsoft SQL Server (SqlClient) サーバー名:○○○\SQLEXPRESS データベース名:master と入力しテスト接続すると「成功」します。 しかしVBは データソース:Microsoft SQL Server Compact 3.5 データベースファイル名:○○○\SQLEXPRESS もしくは データソース:Microsoft SQL Server データベース ファイル (SqlClient) データベース:○○○\SQLEXPRESS と入力しテスト接続すると「見つかりません」となります。 アクセスへなら データソース:Microsoft Access データベース ファイル (OLE DB) データベースファイル名:C:\\Desktop\Documents\○○○.mdb として接続できます。 接続できないというよりもVBにおいてのSQLサーバーへの設定方法がわかりません。 VBにて サーバー名:○○○\SQLEXPRESS データベース名:master へ接続したい場合はどうすればいいでしょうか? ご教授よろしくお願い致します。

  • 「アクセス+SQLサーバー」より「VB+SQLサーバー」のほうがいいのでしょうか?

    今現在アクセスのデータをSQLサーバーに移行して 「アクセス+SQLサーバー」にしようと思っていると知り合い話したら 「VB+SQLサーバーのほうが最強!」と言われました。 (理由までは聞く時間がなかったです) 何がどう最強だかわかりませんが、 「アクセス+SQLサーバー」より 「VB+SQLサーバー」のほうがいいのでしょうか? (VBはアクセスよりも高機能?) メリット・デメリットを教えてください。 よろしくお願いします。

  • VB2008 SQL Server2005 連携

    Win Xp HEで VB2008 Express Edition と Sql Server 2005 EDで データベース プログラムの練習をしています。  vb2008で新しいプロジェクトを作成し プロジェクト メニュから ローカルデータベースを選択すると「ローカル データファイルの 接続に 必要な データ プロバイダが見つかりません。 ファイルはプロジェクトに追加されますが ファイルに関連付けられた データ セットは 生成されません。」という メッセージがでます。 本来なら ここで データソース構成ウィザードが表示され空の データセットが作成されるはずなのですが 空のデータセットが できないまま終了してしまいます。 どなたか 対処法が わかる方 教えてください。 VB2008EDも SQL SERVER 2008も正常に インストールされて いると思います。設定の 問題だと おもうのですが・・・・

  • vb.netでデータベース(Access)を複数アクセス(編集)する方

    vb.netでデータベース(Access)を複数アクセス(編集)する方法について いつも大変お世話になっています。 vb.netでデータベース(Access)を複数アクセス(編集)する方法についてご教授願います。 'SQL文 Dim wrk_sql As String 'データベース Dim G_DATABASES As New System.Data.OleDb.OleDbConnection 'DBの型を定義 Dim dr As System.Data.OleDb.OleDbDataReader 'SQLの型を定義 Dim cmnd As New System.Data.OleDb.OleDbCommand 'データベースを開く G_DATABASES = DBOpen(D:\test\db1.mdb") 'データ抽出 ※1 wrk_sql = "SELECT * FROM TEST" wrk_sql &= " WHERE N_DATA = 0" cmnd.Connection = G_DATABASES cmnd.CommandText = wrk_sql 'コマンドの実行 dr = cmnd.ExecuteReader() While dr.Read() = True ' ………← ※2 End While <目的> [※1]で抽出した結果(複数行存在します)を保持したまま [※2]の中で同じDB(G_DATABASES)にアクセスし SELECT文で抽出した結果を保持したまま処理を続けたい。 <問題> ・実行時「指定したデータベースは既に開いている」とのエラーが表示。 ・DBの型の定義、SQLの型の定義 を複数用意してもエラーが表示。

  • ORACLEでのSQLについて

    SQLについて教えてください。 今、VBからORACLEデータベースにSQLを投げる処理を作っているのですが、 一つわからないことがあります。 例えば、アクセスでは、クエリで新しいテーブルを作成するという考え方がありますが データベースがORACLEでも同じようなことができるのでしょうか? 別に新しいテーブルを作成することに執着するわけではなく、テーブルのデータを削除 してから、そのテーブルにSQLにて引っ張ってきたデータを入れる という ものでもいいと考えています。そのやり方でもかまいませんので教えてください。 宜しくお願いします。 Oracle8.1.6 vb6

  • SQLで、同じ値が何回連続するか、カウントする方法

    1年間の天気のデータベースがあるとします。 7月のデータを抽出し日付でソート、ある日付から、その日と同じ天気が何日続いたかを、SQLで簡単に調べる方法はあるでしょうか? データベースは、ACCESSのmdb、VBでJETデータベースエンジンを使用していますので、高度なSQL文は使用できないかもしれません。 よろしくお願いします。

  • VB.NETのSQL文について

    質問失礼します。 VB、SQLともに勉強しはじめて日が浅い初心者ですが、どなたかお力をお貸しください。 データベースに登録しているデータをNPOIを使って、出力したいと考えています。 DataTableを使用して作りましたが、上手くできない部分があります。 テーブルのカラムは、社員番号、事務物販名、登録数、登録日、更新日のようなものが入っているイメージです。 登録日を検索して、全てのテーブルを抽出したいのですが、○月○日〜○月○日にデータを登録した人というときに、つまづいてしまいました。 SQL.Append("SELECT " ) ・ ・ SQL.Append("WHERE ") SQL.Append(" 登録日 BETWEEN パラメータ1 AND パラメータ2 ) のように、書いたところ問題なく、出力されました。 パラメーターの部分は、DateTimePickerコントロールを配置して、日付を入力した値を設定しています。 2023/1/1 と 2023/1/2と2つ入力して、この2日間のデータを出そうとしたところ、1/1の文しか出力されませんでした。 原因は、データベースに入っているのは、Date型で、YYYY/MM/DD HH:mm:SS形式でした。 1/2の0時以降は、該当データに含まれないということは分かっているのですが、それを含めてのSQLの書き方がわかりません。 単純にSQLを書くには、 BETWEEN 2023/1/1 AND 2023/1/2 23:59:59 で、2日の文を抽出されますが、VBに書く時がうまくできない状態で、 時間の部分を、結合すれば良いのかと思い、 SQL.Append("SELECT " ) ・ ・ SQL.Append("WHERE ") SQL.Append(" 登録日 BETWEEN パラメータ1 AND パラメータ2 II '23:59:59' ") と、DataTimePickerから持ってきた、パラメータの日付に時間を結合してみたところ、ダメでした。 型の問題なのか、よくわからず、勉強している状態です。 基礎がなっておらず、初歩的なミスかと思いますが、ご指導ください。 データベースはOracleを使用しています。

専門家に質問してみよう