• ベストアンサー

VBとACCESSの境目は?

みなさんがアプリケーションを開発するとき、 もし、VBかACCESSしか使えないとなると どちらを選びますか? また、そのときの判断基準を教えてください。 たとえばこういうことはVBで、こういうことはACCESSで・・・みたいな事があれば教えてください。 よろしくお願いいたします。

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

  • ベストアンサー
回答No.2

どんなアプリケーションかで変わってきますね。 どちらか1つということになれば,DBの場合はAccess その他ではVBとなりますでしょうか。 DBでも,VB+Accessなら,もっとうれしいですけど。 なんたって,入力等のフォームが自由にできますし,コンポーネントも多いし あと,自分だけアプリを利用するのならいいけど,Accessで作成した場合は他人に配布するときにAccessの環境が必要となるし…

tmdead
質問者

お礼

ありがとうございます。 なるほどですねー。 配布方法や入力フォームの自由度も考えどころですねー。 私もそこは気になるところです。 ちなみにVBの場合はフリーのランタイムがあれば環境としては整うのでしょうか?特別なDLL等は必要ないんですかねぇ? またお時間のあるときにお話お聞かせください。

その他の回答 (4)

回答No.5

VBで依存ファイル(DLL)等を配布するときは,Pro以上についている「ディストリビューションウイザード」を利用することにより,セットアッププログラムを作成して,必要なランタイムを簡単に配布することが可能です。 VB+Access+Oracleの組み合わせですが, 通常のアプリケーションはVB+Oracleで,開発時に結果を見たい時に,OracleへAccessからリンクを貼って内容を確認する。といった使い方をしました。 よほど,高い信頼性?必要なものとか,複数人でDBに書込みをやる。といった使い方をしない限りは,VB+Accessで十分だと思いますが。(価格も安いしネ!!) レポートですが,確かにプリンターオブジェクトを使用したレポート作成は大変です。しかしながら利用法によっては,Acのレポートよりも美しい仕上がりになります。データの内容によって,動的にレイアウトを変えて出力することもできますし,標題等も動的に変化させる等の細かいことも可能です。 ただ,問題点は,コーディングが面倒!! このひとことにつきます。

tmdead
質問者

お礼

またまたありがとうございます! なるほどー、ディストリビューションウィザードというのがあるんですね。 Pro以上ということはそれ以下のエディションの場合は配布ができないのでしょうか?配布はできるけどランタイムを個別に用意しなければいけないとかでしょうか? Oracle関係ですが、やはり信頼性の問題はあるんですかねぇ。 排他制御とか。 でもやはりコストがあまりかからないのは魅力ですよね! レポートに関しては動的にレイアウトが変えられるというのが面白そうですね。 レポートのツール(?)としてはクリスタルレポート(自信なし)というのは聞いたことがありますが他になにかお勧め等ありましたら教えてくださいね。 また息抜き時にでも。。。ありがとうございました。

  • software
  • ベストアンサー率28% (24/84)
回答No.4

開発規模にもよりますが、帳票出力を中心に考えるならばACCESSです。VBで帳票を出力しようとするとプリントオブジェクトを使用しないとならず、大変な目を見ます。(実際の開発ではVBでの帳票出力を行う時は、別途アドインツールを使用しています)

tmdead
質問者

お礼

ありがとうございます。 新たな視点ですね。(常識でしたらごめんなさい) 帳票のことも考慮しておかないといけないですね。 たしかにACCESSのレポートは便利です。 最近VBは使ってない私ですが一昔前もVBの場合ツールを使わないといけなかったと思います。 みなさんいろんな視点でソフトを選択しているんだと関心しています。ありがとうございました。

回答No.3

こんにちは 私はACCESSは単なるデータベースという 考えをもっています。 比較的簡単なこと、例えば クエリーでキーを絞り込んで抽出したい ことはACCESSで作成しますが ユーザーインターフェイスが重視されたり する処理や複雑な内部処理が必要なものは ACCESSでは限界があるのでVBとなります。 また、No.2の方がおっしゃられているように 扱うシステムのデータ構成によってVB+ACCESSという使い方をよく利用します。

tmdead
質問者

お礼

ありがとうございます。 やはりユーザーインターフェイスはVBとACCESSとでは違うんですねー。 そういえば時々ACCESSを使っていて不満を感じることもありますしね。 単なるデータベースというのは「データベースエンジン」という意味で合ってますよね? データベースエンジンという意味でのACCESSに対する皆さんの評価も気になるところです。 (確かJETデータベースエンジンでしたっけ?) よろしければNO.1や2のお礼にある新たな疑問も見てみてくださいね。

  • p-21
  • ベストアンサー率20% (265/1269)
回答No.1

そりゃやっぱりアクセスでしょう って言いたいですけど ナニをするかが問題です 一言で言って「データベースの作成」といえば 迷わずアクセスですね これはエクセルでも言える事ですが もともとそのアプリに標準である機能を使うと言うことは 非常に効率的な事であり 完成させるにも時間が短縮できます  エクセルでもアクセスでもVBA(VBの簡易版ともいうべきか)が使えますから・・・

tmdead
質問者

お礼

早速のお返事ありがとうございます。 やはり「データベース」が一つの境目なんですかねぇ。 「データベース」が必要ないのにデータベースソフトのACCESSを使う必要はないですからね。 そうなると新たな疑問が湧いてきました。 よろしければ他の皆さんにも・・・ もしデータベースが必要な案件で、ACCESSとVBとOracleがあり、それらを使うことができるとすればどんな理由でどういう組み合わせで使いますか? また時間あるときにでもお話をお聞かせくださいね。

関連するQ&A

  • ACCESSのEXEを作るのは可能ですか?

    VBでアプリケーション開発後EXEを作成する事が出来るのは 知っているのですが、どうやら、ACCESSでもEXEが作成 出来ると聞いて調べているのですが、全く何もわかりません。。。 誰か、ご存知でしたら教えて頂けませんでしょうか???

  • VB5からAccess97が起動できない

    メイン部分をVB5、DBと印刷業務をAccess97で開発したアプリがOSをWindows95からWindows2000に変更したら、VBからAccessが起動しなかったり、VB終了後もAccessが残ったりします。今の仕様はAccessからVBメニューを起動し、印刷業務を選択した時にAccessをActiveにする設計になっています。VB5からAccess97の制御方法に問題があるようですが、対応方法が判りません。どなたかご存知の方は教えてください。

  • アクセスでvbを使う

    アクセスでvbを使って開発するように指示が出ました。今勉強中のところです。いくつか質問があります。 アクセスでもvisual baisic editorが使えますが、visual studioなどをインストールしたほうがいいのですか。 どのような本を購入して勉強したらいいのですか。 実務をできるようになるまでにどのくらい勉強したらいいのですか。よろしくお願いします。

  • VBからaccess UserControl

    vb.netから 【VB】-------------------------------------------- Sub AccOpen() Dim AccApp As Access.Application Dim MyPath As String MyPath = "○○.accdb" AccApp = CreateObject("Access.Application") AccApp.OpenCurrentDatabase(MyPath) AccApp.Visible = True AccApp.UserControl = True End Sub -------------------------------------------------- でアクセスのファイルを開いているのですが、 アクセスの標準モジュールで 【access】-------------------------------------------- Sub test() MsgBox "The user started Access: " & Application.UserControl End Sub ---------------------------------------------------- を実行すると、Trueが返ってくるのですが、正しくはFalseなのではないでしょうか? アクセスのヘルプをみると、 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・  True 現在のアプリケーションはユーザーによって起動されました。 False 現在のアプリケーションは、オートメーションを使って他のアプリケーションによって起動されました。 と書かれています。 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・  AccOpenはvbで実行しているので、 「オートメーションを使って他のアプリケーションによって起動されました。」 に該当するのではないでしょうか?

  • VBからACCESSのレポート出力

    すみません。どうしてもわからないので、質問させて頂きます。 VB6.0 + ACCESS2000 で開発をしています。 インターフェイスはVB,DBはACCESSなのですが、帳票の出力も、 ACCESSで行いたいと思っております。 この時、クライアントにACCEESSが入っていない事も想定して、 ACCESSランタイムも用意しました。 デバッグマシン(OFFICEは入っていません)にランタイム(VB,ACCESS)を インストールして、実行ファイルを実行すると、印刷の部分で、「エラー429 Activeコンポーネントはオブジェクトを作成できません」とのエラーが出て、印刷ができません。 印刷以外は問題なく動いています。 開発マシンは、Win2000、デバッグマシンはWinXPで、ACCESSランタイムはOFFICE XP Developerで作成しました。 下記にソースコードも記載させて頂きます。 もちろん、開発ではきちんと動作しています。 Dim oleAccess As Access.Application Set oleAccess = GetObject(App.Path & "\data\data.mdb") Call oleAccess.DoCmd.OpenReport(ReportName, acPreview) oleAccess.DoCmd.Maximize oleAccess.Visible = True 当初は、「oleAccess.OpenCurrentDatabase」でDBを開いていたのですが、 ACCESSランタイム環境では、GetObjectの方が良いということを聞いたので、 上記の様になっています。 エラーが起きている行は、どうやら「GetObject」の行のようです(oleAccess.OpenCurrentDatabaseの場合でもエラー)。 ACCESSランタイムを使う事が初めてなので、手探りでやっているため、 的外れな所もあるかと思います。 何かアドバイスを頂ければ幸いでございます。 よろしくお願い致します。

  • access → Oracleへのデータ移行(VB.NETで)

    お知恵を貸してください。 ただ今、VB.NETでアクセスで開発されたアプリケーションを、 VB.NETに移行する開発をしているのですが、その中で、 現在のDBはアクセス、移行後のDBはオラクル10gなんですが、 何か良い移行方法は無いでしょうか? ちなみに、テーブル名、レコード名は変更しますので、そのまま移行ではありません。 私が考えているのは、アクセスのデータをエクセルにコピペし、 それを.NETで読み込んでテープルに入れて1レコードずつ オラクルに書き込んで行こうと考えております。 しかし、上記の方法でエクセルの読込方法が良く分かりません。 一旦、エクセルに取込む方法の場合の読込方法を教えてください。 また、もっと効率の良い方法をご存知でしたら教えてください。 開発環境は  OS : windows XP Pro 開発ソフト : VB.NET DB : Access 2003 SP2 DB : Oracle 10g です。なにぶん、VBでの開発経験が浅いので、 猿でも分かるように(W)お教えいただけると幸いです。

  • VBからAccessのマクロを動かしたい(最適化したい)

    開発環境=NT4SP4 VB5 Access97 VBからMDBファイルを最適化するプログラムを作成しているのですが、 現在わかっているやり方は 最適化したファイルを作る→最適化元ファイルを削除→最適化後ファイルのファイル名を元ファイル名に直す。 という手順を踏んでいるのです。 これをAccessのマクロならば上記の手順のようにファイル削除したりしなくても 最適化が行えるそうなのです。 そこでVBからAccessのマクロを実行する方法がわからなくて困っているのです。 よろしくお願いいたします。

  • VBからのACCESSの起動に関して

    開発環境:Visual Basic 2008/ACCESS 2000 VB2008よりACCESSを更新したり、ACCESSのレポートを使用したりする プログラムを作成しています。 その際に、1つのACCESSに複数のレポートを作成している事から、複数のプログラム からACCESSを起動させようとするとエラーとなってしまいます。 ACCESSをそれぞれ分けてしまえば問題ないですが、、、、 そもそも1つのACCESSファイルを複数からアクセス(複数のVBプログラム)するという事が 不可能なのでしょうか? あるいは、下記の記述にあるように、データベースを開こうとするかエラーである為、 開いているか確認の記述をし、既に開いているようだったら、その処理をとばすような事 をすれば問題ないのでしょうか??? 教えて頂きたいと思います。 よろしくお願いします。 《記述内容》 Dim ac As Object ac = CreateObject("Access.Application") With ac 'アプリケーションを表示する ac.Visible = True 'データベースを開く ac.OpenCurrentDatabase("C:\sample.mdb") '名前を指定してレポートを開く ac.DoCmd.OpenReport("R_一覧表", 2) 'acViewPreview 'レポートの最大化 .DoCmd.Maximize() 'オブジェクトの解放 System.Runtime.InteropServices.Marshal.ReleaseComObject(ac) End With ac = Nothing

  • VB.NETからAccessの操作

    現在VB.NETで開発をしています。 実はVB.NETから、指定してあるアクセスファイルのテーブルをコピーして名前をかえたいと思っています。 どのようにすればよいのでしょうか。教えてください。

  • VBとVC++について

    タイトルのVBについてですが、プログラミング言語というのはわかるのですが、具体的にどの様な事に特徴があってメリットといいますか使いやすさ!?などはどうなのでしょうか? また、excel等にもVBが入っていると思うのですが(マクロ)、その他、企業などでもアプリケーション開発などにVBにて行っているようですが、具体的にどの様なアプリケーションソフトウェアがあるのでしょうか? プログラミングは初心者ですが、VBは学びやすく分かりやすいでしょうか? また、VBの将来的な展望はどうなのでしょうか? VBとVC++の用途の違いはなんでしょうか? ご教授お願いいたします。

専門家に質問してみよう