• ベストアンサー

どのような構成にすればよいか?

初めて投稿します。 リュウちゃんです。 とあるツール作りで困ってしまってます。 データの検索ツールを作成することになってます。 内容は、インターフェイスがあり、そこに打ち込んだキーをもとにして、内蔵しているデータベースから値を引っ張ってきて表示するというものです。 このパッケージ(ツールとデータ)をお客さんに配るというものなのですが、当初、エクセルベースのデータにしてVBAでインターフェイスとロジックを作成しようとしたのですが、データ量がエクセルで1G以上であり断念しました。そこでAccessベースにしようとしても、お客さんがAccessをインストールしていない方が多くこれも断念してます。 そこで、VBでインターフェイスとロジックを組み、データについては何か違う方法で持たせたいと思ってます。 ちなみに、このデータは外部から見られないようにしたいと思ってます。(テキストベースだと丸見えなので) 根本的に考え方が間違っているかもしれませんが、良い知恵がありましたらご教授下さい。

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

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

> そこでAccessベースにしようとしても、お客さんがAccessをインストールしていない方が多くこれも断念してます。 Accessをインストールしていなくても、mdbファイルにはVBやVBAから接続は出来ます。 私は、当初の予定どうりEXCELからアクセスデータベース(mdb) に接続するのが一番手軽かと思います。

ryuuchan77
質問者

お礼

ご返答ありがとうございます。 >Accessをインストールしていなくても、mdbファイルにはVBやVBAから接続は出来ます。 そうゆうモノなんですね。その辺もググって調べてみます。

ryuuchan77
質問者

補足

質問者です。 再度、色々と調べたのですが、ご指摘の内容は、下記のURLのような方法でVBAからMDBを読むことをさしているのでしょうか? http://www.ylw.mmtr.or.jp/~itcarrot/vbscriptsql/ado_excel_09.html プログラミングをするときに、参照設定でActivXなどを設定する必要があるようですが、それは完成した後でも、それを配った客先には、それぞれが参照設定の手間をかける必要があるということになりますね。 これをVBで行うと、客先での細かい設定がしなくてもなくなるのでしょうか?

その他の回答 (2)

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.3

補足ありがとうございます。 お客様に極力インストールさせたくなければ、 Webアプリケーションが一番手っ取り早いんでしょうけど、 CDに納品物件を入れたいとなると、Webアプリケーションでは 無理ですね。 VB < C言語 の関係は、否定はしないですが、 大量データになるとあまり変わらない気がしてます。 (VB Runtimeのインストールを強要したくない気持ちは確かにわかります) できるかどうか、わかりませんが、CSVファイルを1つに集中管理 させるのではなく、CSVを分割したような持たせ方ができる 設計ができれば、スピードの問題はある程度は解消できると 思いますし、VBの画面から、外部のEXEキックするのもAPIや Shell関数で十分できますので、検討する余地はあるかもしれませんね。 分割の単位は、件数でもいいですし、サイズで区切ってもいいかな と思います。ファイルのI/Oではなく、ある程度メモリ容量が許す 範囲で、メモリ少量ずつ展開して、編集していく処理をC言語側で 作るのが望ましいでしょうね。 ところで、C言語ってVC++ですか? VC++にもランタイムじゃないですが、納品時専用のDLLが必要になりますので、 CD-ROMに納品物を収める場合は、忘れないようにして下さい。

ryuuchan77
質問者

お礼

大変参考になりました。 皆さんの意見を踏まえて、もう一度調べなおして仕様を固めたいと思います。 有難うございました。

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.1

お客様には、極力ソフトウェアのインストールや 何かの設定(ODBC等)を強要したくない といったところでしょうか?(その辺、詳細を教えて下さい) このような場合、フリーのデータベースソフトを入手して、 どこかのサーバにデータベースをインストールし、 データベースサーバとして、データ保持すれば、 大量データも扱いが楽だと思います。 (VBの画面(お客様のPC)から、データベースサーバにSQLを投げて、データを取得すれば良いのですから) データベースと言っても、いろいろありますが、 MSDE、SQL Server などでも問題ないと思います。 (MSDE、SQL Serverのドライバは、大抵、どの端末にも インストールされているはずなので) 大量データも保持でき、お客様に、インストールを強要したり 何かを設定して頂く必要がなくなるという点では、 検討の余地はあるかと思います。 # ただし、その他にもいろいろな制約があると、   ちょっと厳しいですよね。 参考になれば、幸いです。

ryuuchan77
質問者

補足

ご返答、大変有難う御座います。 ご指摘の通り、お客様には極力ソフトウェアのインストールや複雑な設定を強要したくないのです。 前回、データ量が1GBを超えるとありましたが、テキスト形式であれば300MB程度でした。 納品形態は、CD1枚にデータ郡とexeを納めた形としたいです。 exeを実行すると、インターフェイスが現れて、検索条件を指定し、その条件をもとにデータから値を引っ張ってきて、CSV形式のテキストデータとして、PCに保存するといったような内容です。 前述にもあるとおり、その途中で何かをインストールしたり、設定したりはしたくありません。VBでexeを作っても「VBのランタイムをインストールしてください」のようなお客さんに手間が掛かることはなるべくしたくないのです。 データベースを利用するのではなく、下記のようなテキスト形式のデータの持たせ方にして、VBでインターフェイスを作り、C言語で作ったexeをキックするような作りが良いかななどと思ってます。処理スピード重視のためにCなるものができてきましたが・・・。 name,value,flg1,flg2,flg3,flg4,flg5,flg6,flg7.... ______________________________________________________ ○○○,9999999,1,0,1,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,1 △△△,8888888,0,1,1,1,1,1,0,0,1,1,0,0,1,0,0,0,1,1,1 □□□,7777777,1,1,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0 ※何万レコードになると思われます。 たとえば、flg1とflg3とflg7が "1" のnameとvalueを抜き出し、CSVファイルとして出力する。(flgの選択が可変)となるような検索をします。

関連するQ&A

  • データマイニングツールの構成と分類について

    初めての投稿で恐縮ですがよろしくお願いします 今、データマイニングツールに関する勉強をしています そこでどうしても「構成」と「分類」についてが分かりません 多くの文献を読みましたが、これらについて触れられているものがなく苦労しています 具体的に構成については 「データマイニングモジュール」 「データベースインタフェース」 「視覚化ツール」 「推論機構」 「知識ベース」 「利用者インタフェース」 の働き 分類については 「汎用単一タスクツール(単一機能システム)」 「汎用マルチタスクツール(総合型システム)」 「領域特化ツール」  の働きです 参考になりそうなサイトでもかまいません どうかお力をお貸しください よろしくお願いします

  • AccessとOpenOffice:Baseの互換

    OpenOffice:BaseとMicrosoftOffice2003:Accessでデータのやり取りをしたいのですが、 Accessで作成したデータ(.mdb)をBaseで開くことはできるのですが、 Baseで作成したデータ(.odb)をAccessで開くことができません。 なにか方法はないでしょうか? エクステンションやツールなどを使用する場合、 その名前も教えてください。 よろしくお願いします。

  • 作成したデータベースプログラムを他のパソコンで利用したいのですが・・・。

    VBを使ってデータベースプログラムを作りました。データベースはAccessで作り、DataGrid上に現れるようにしています。 ところが、これをパッケージしてフロッピーに落とし、他のパソコンに適切にインストールしたうえで実行してみたのですが、データベースを読み込むことができません。 Accessのファイルもパッケージ時にCabファイルに落とし込んでいるのですが・・・。 どのような原因が考えられるでしょうか??

  • 重くなってしまったアクセスを軽くする方法

    アクセス2000で社内のデータ-ベースを作っています。 ようやくデータ-ベースが完成したので、データーベース分割ツールを使ってデーターベースをテーブルデータと、フォーム等に分割し、テーブルデータを社内のランのサーバーに置き、クエリ、フォーム及びレポートを各パソコンにコピーして皆で使えるようにしました。 とりあえず、動くのですが、動きが非常に重いんです。これは、どうすれば軽くなるのでしょうか?

  • ADOを使えます。どのくらいのレベルでしょうか。

    Accessの一つのmdbファイルをデータベースとして、Excelをインターフェイスとして、システムを作れます。具体的には、成績データベースを作り、ADOによってExcelのシートにデータベースのデータを抽出して取り出し、そこで入力・編集を行い、ADOによってデータベースのデータ変更を確定させるという方法で、一つのmdbファイルを複数の端末におけるExcelによって書き込んでいます。 こういうことができるレベルってどのくらいのレベルなのでしょうか。

  • Excelオブジェクトの操作

    お世話になっております。 二つどなたかご教授下さい。 VB6.0を使用しExcelオブジェクトにデータを吐き出す単純なロジックを作成しております。 この際、Excelオブジェクトをいろいろ操作しているのですが、2つわからない事があります。 一つは、Excelの操作で、「表示」→「ズーム」を70%にする記述。 もう一つは、「ツール」→「オプション」→枠線のチェックを外す(つまり枠線非表示にする)方法。 これらの作業をVB上でワークシートオブジェクトを操作して行う方法をご教授下さい。 マクロでこれらの動作を一旦記録し、そのロジックをいろいろ加工してみてもだめでしたm(__;)m。

  • エクセルでSQLを使う

    VB6.0でのSQLは 理解しているのですが (アクセスのデータベース宣言して、使ってるんですが) エクセルでSQLを 使うには、データベースの宣言など、必要らしい。 でも、エクセルのデータやら、文字列や式まで、混ざっているシートと、データベースが頭の中で一致せず、困っています。 ある範囲を宣言するんでしょうか

  • VB6.0とVB.NETの違い

    学校の実習での復習で分からないところがありまして 文献を調べたのですが、解決しなかったので教えてください。 最近VB.NETを使う機会が多くなりまして、VB6.0との違いについて悩んでおります。 かつて、VB6.0で基礎的な参考書にデータコントロールを使用してのデータベース(エクセルを用いての)を作成したことがあったのですが、VB.NETにしてからは、同じ方法でのアプリケーションの作り方(データコントロールとエクセルを使っての方法)がわからなくなってしまいました。 どなたか、教えてください。おねがいします。

  • Access フォーム

    Accessでデータベースを作成しようと思っています。データ入力のフォームを作成して、利用者がそのフォームに値を入力する形式にするつもりです。 ただ、利用者には入力のインターフェースだけを公開したいのですが、フォームを表示するとAccess自体が起動しするので、その気になればデータベースに対して全ての操作が可能になってしまいます。 Accessってこういうものなのでしょうか。

  • 3層クライアントサーバとMVCの関係

    3層クライアントサーバ方式(ユーザインタフェース、ビジネスロジック、データアクセス)をMVCに適用する時、Vがユーザインタフェース層に該当すると考えていますが、CとMは何処に対応するのでしょうか。Vがユーザインタフェース層に、Mがビジネスロジックとデータアクセス層?かなと思ったのですが、Cが何処に該当するのか、わかりません。(Cは、ユーザインタフェース層とビジネスロジック層の間に位置しそうですが、該当するものがありません)。ご存知の方、宜しくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう