- 締切済み
mdbのテーブルを別のmdbのテーブルに追加
2種類のMDBがあり 一つは 毎日の入力にて使用、もう一つは 累積として使用している。 それぞれに 同一デザインのテーブルがあります。 毎日の入力用のMDB内ののテーブルのデータをすべて 二つ目のMDBのテーブルに 追加したいのですが 一件読み込んで 一件書き込むなどと プログラムしていましたが 毎日の入力用のMDBが たくさんになったため 処理が遅くてたいへんです。 なにか 簡単に かつ 高速にすることは可能でしょうか? 開発環境は VB6 SP6 WindowsXP ADOを使用しています。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- live_creation
- ベストアンサー率50% (2/4)
もう少し詳しい内容を説明頂けたら、色々な方法が提示できると思います。 推測で、お話させて頂きますね。 入力用のMDBがインターフェイスも兼ねていて チェック項目があまりないのであれば、入力するMDB自体にリンクテーブルを 入れておき、入力時に集計用?MDBを更新してはどうですか? VB6.0でアプリケーションを作っているのであれば、ローカルに入力用MDBを 設ける必要はあまりないように思います。 集計用MDBを共有し、排他処理を実装すればローカルMDBを更新する必要自体が なくなるのではないでしょうか。
- GNOBU
- ベストアンサー率50% (3/6)
失礼ながら質問者様がどのくらいの技量があるのかがわかりません。 具体的な材料もないので・・・・ まず、ACCESSプログラマーの初心者がよくやるのは何でもかんでも ウイザードまかせ 出来上がったクエリー の中身のSQL文の命令については見てもわからない。 巨大なクエリーになってしまう。 といった方が多いです、 これではいつまでも初心者はぬけだせません。 テーブルの項目の正規化(無駄な項目がないか、あちこちに同じ項目が存在するなど) まずはSQLの適正化(どうすれば早いSQLになるか。 遅いSQL命令を実行しているか) ストアド的な処理を VBプログラム側で行っていないか? クエリーに置き換えは可能か? ループ処理で一件づつ読み込んでは書く処理など => 一括処理(クエリーにできないか?) 見直しが必要です。 もうひとつ ACCESS2000 など古いバージョンの場合は はっきり言って遅いです。 件数がある程度、多いことが見込めるのであれば いっそ SQL Server 2008 Express など 無料のDBにしたほうが いいです。 一括処理(ストアド) トランザクションにも対応できますし・・・ VB6自体、バージョンが古く、今ではVB.net 系になっていますので プログラムを VB.NET 20xx に置き換えて 作成しなおしたほうが 手っ取り早いかもしれません。 とはいえ .NET系のプログラミングを習得するには少し自習しなければなりませんが。