• 締切済み

mdbのテーブルを別のmdbのテーブルに追加

2種類のMDBがあり 一つは 毎日の入力にて使用、もう一つは 累積として使用している。 それぞれに 同一デザインのテーブルがあります。 毎日の入力用のMDB内ののテーブルのデータをすべて 二つ目のMDBのテーブルに 追加したいのですが 一件読み込んで 一件書き込むなどと プログラムしていましたが 毎日の入力用のMDBが たくさんになったため 処理が遅くてたいへんです。 なにか 簡単に かつ 高速にすることは可能でしょうか? 開発環境は VB6 SP6 WindowsXP ADOを使用しています。 よろしくお願いします。

みんなの回答

回答No.2

もう少し詳しい内容を説明頂けたら、色々な方法が提示できると思います。 推測で、お話させて頂きますね。 入力用のMDBがインターフェイスも兼ねていて チェック項目があまりないのであれば、入力するMDB自体にリンクテーブルを 入れておき、入力時に集計用?MDBを更新してはどうですか? VB6.0でアプリケーションを作っているのであれば、ローカルに入力用MDBを 設ける必要はあまりないように思います。 集計用MDBを共有し、排他処理を実装すればローカルMDBを更新する必要自体が なくなるのではないでしょうか。

  • GNOBU
  • ベストアンサー率50% (3/6)
回答No.1

失礼ながら質問者様がどのくらいの技量があるのかがわかりません。 具体的な材料もないので・・・・ まず、ACCESSプログラマーの初心者がよくやるのは何でもかんでも ウイザードまかせ 出来上がったクエリー の中身のSQL文の命令については見てもわからない。 巨大なクエリーになってしまう。 といった方が多いです、 これではいつまでも初心者はぬけだせません。 テーブルの項目の正規化(無駄な項目がないか、あちこちに同じ項目が存在するなど) まずはSQLの適正化(どうすれば早いSQLになるか。 遅いSQL命令を実行しているか) ストアド的な処理を VBプログラム側で行っていないか? クエリーに置き換えは可能か? ループ処理で一件づつ読み込んでは書く処理など => 一括処理(クエリーにできないか?) 見直しが必要です。 もうひとつ ACCESS2000 など古いバージョンの場合は はっきり言って遅いです。 件数がある程度、多いことが見込めるのであれば いっそ SQL Server 2008 Express など 無料のDBにしたほうが いいです。 一括処理(ストアド) トランザクションにも対応できますし・・・ VB6自体、バージョンが古く、今ではVB.net 系になっていますので プログラムを VB.NET 20xx に置き換えて 作成しなおしたほうが 手っ取り早いかもしれません。 とはいえ .NET系のプログラミングを習得するには少し自習しなければなりませんが。

関連するQ&A

  • vb2005でmdbを読み込みmdbに書き出したい

    よろしくお願いします。windowsxp,access2003,vb2005express エディションを使用して、現在、勉強中です。 早速質問ですが、ADO・NETを使ってA_MDBをvb2005に読み込んで,その内容をB_MDBに書き込みたいのですがその方法が分かりません 例えば、A_MDBのA_TABLEには単価と数量が有ります。仮に10レコードがあるとします、このA_TABLEを読み込んで、単価と数量を 掛けて金額を計算し、B_MDBのB_TABLEに単価、数量、金額の各項目を書き込むという感じです。A,B両MDBは作成済です。あまり上手く 表現できませんがよろしくお願いいたします。

  • 他のMDBのテーブルに追加したい

    Access2010のADOについてご質問します。 以下のようにして、データを追加しています。 Dim SQL As String Dim cn As ADODB.Connection Set cn = CurrentProject.Connection ' SQL = "INSERT INTO テーブルA ( 勤務時間 ) " SQL = SQL & "SELECT [テーブルA ].[勤務時間] " SQL = SQL & "FROM テーブルA ; " cn.Execute SQL ご質問したいのは、 当MDB(PC)から社内サーバーにあるMDBのテーブルに追加したいのです。 違うテーブル名でしたら、リンクをすれば済む話とは思いますが 同じテーブル名の「テーブルA」なので どのようにすればいいのか困っています。 ご指導の程をよろしくお願いします。

  • テーブルのコピーについて

    VB初心者質問です。 開発環境 VB6 SP6 WIN2000  VB6を使用しテーブルをコピーしようと思っています。 サイトが見つけられませんのでどなたかアドバイスお願います。 (内容) a.mdbとb.mdbの2つがあり、それぞれaaaテーブル があります。(構造は同一です) a.mdbのaaaテーブルをb.mdbのaaaテーブルに上書きコピーするにはどのようにすればよろしいですか? よろしくお願いします。

  • エクセルからアクセスへADO 「_be.mdb」に追加するべき?

    リンクテーブルでtest.mdbとtest_be.mdbに分割した場合 エクセルからアクセスへADOでテ゛ータを追加する場合、 「test.mdb」と「test_be.mdb」のどちらに追加すればいいのでしょうか? 「test_be.mdb」はリンクテーブルとして「test.mdb」のテーブルのみ保存されています。

  • VBからMDBのアクセス

    VB初心者質問です。 開発環境 VB6 SP6 WIN2000  VB6からMDBの検索の手順について教えてください。 (質問) フォームに検索値用のテキストBOXを配置し、 その値でMDBのテーブルを検索し1件抽出する。 (検索値はテーブルのキー項目のため重複なし) 現在 Microsoft DAO 3.6 Object Library を参照しているので DAOで検索を行いたい。 知りたいことは検索の方法と 見つからなかった場合の判定についてです。 サンプルなどあればお願いいたします。

  • MDBファイル→ORACLEテーブル

    いつもよく拝見させてもらってます。 今回初めて投稿させていただきますので何とぞ色々な面でご教授のほどよろしくお願いしますm(_ _)m  本題ですが、VB6を使いACCESSのMDBファイルをORACLEのテーブルにエクスポートするやり方を考えております。  Commandボタンを用意し、それをクリックしたらORACLEのテーブルにデータが入るというプログラムを作成しているのですが、ADOを使いMDBファイルのデータを落とす事まではできたのですが、ORACLEへの登録の仕方が分からないのでどなたかアドバイス又は参考となるサイト等ありましたらよろしくお願いします。  まだまだ初心者で分からない事だらけですので、何か他に情報が必要な際は、ご連絡ください。

  • ACCESS テーブルのコピー

    XP-ProでVB.NETを使用しています。 複数のテーブルがあるMDBから、 一つのテーブルの中のデータの一部をコピーしたいと思います。 接続方法はADOです。

  • MDBテーブルへの追加変更を教えてください

    いつもお世話になってます。VB2005の初心者の質問です。 データの変更頻度が少ないのでMDBテーブルをDataGridViewの表示させて行の状態から追加変更したいのですが肝心な部分がわかりません。 DB名=NO.MDB テーブル名=番号 (IDNO、addres、TELNO の3項目です) Private Sub 更新_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 更新.Click Dim dSet As DataSet = New DataSet("番号") Dim cn As OleDb.OleDbConnection =   NewOleDb.OleDbConnection( _ "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=NO.mdb;") Dim dRow As DataRow Dim dTbl As DataTable Dim i As Integer dTbl = DataGridView1.DataSource For i = 0 To dTbl.Rows.Count - 1 If dTbl.Rows(i).RowState = DataRowState.Added Then MessageBox.Show(i, "件目") →デバック表示です ??????? Addedならレコードの追加をしたいです End If Next End Sub ご回答よろしくお願いいたします。

  • Accessデータを違うmdbにコピーしたい

    VB2005で、mdbをデータベースにして開発しています。 aaa.mdbのテーブル1のデータをbbb.mdbのテーブル1に読み込ませたいと思っています。 bbb.mdbのテーブル1は、aaa.mdbのテーブル1よりフィールド数が多く、 該当する列にデータを読み込ませたいと思っています。 今まで、バックアップはaaa.mdbを丸ごとコピーして圧縮ファイルにしていました。復元の時は、解凍して上書きする、という手法をとっていました。 しかし、今回どうしてもテーブル1に列を追加しなくてはならず、aaa.mdbのバックアップデータをbbb.mdbに読み込ませて、VB2005のフォームに表示したいと考えております。 以上のような操作は可能でしょうか?可能でしたらその手法を是非教えてください。 また、データベースアプリを作成する上でアプリ完成後に、カスタマイズや計算方法の変更により列の追加が必要になる、いうことはまずいことでしょうか?前もって考えてフィールドを持っておくべきなのでしょうか?経験がないため、わかりません。この点についてもアドバイスがありましたら宜しくお願い致します。

  • C# mdb レコード追加

    お世話になります。 C#の超初心者です。よろしくお願いします。 開発環境 Microsoft Visual C# 2005 mdbはaccess2000です。 現在、C#を使用してmdbに追加を行おうとしていますが、出来ません。 データテーブルまでは、追加は確認されたのですが、 その後updateメソッドを使用して追加を試みているですがエラーが返ってきます。 アダプターオブジェクトは、データセットのアダプターを使用しています。自動で作成される物です。 データセット.xsd内に作成されています。 内容は、 データアダプター名.Update(データセット名,データテーブル名);です。 これを実行すると、 『引数を2個指定できるメソッドUpdateのオーバーロードではありません。』 のエラーがでます。 参考書等見ているのですが、皆目検討もつかない状態です。 分かりづらい質問で大変恐縮ですが、何卒よろしくお願い致します。

専門家に質問してみよう