No.2
- 回答日時:
必要な情報が載ってません。
1.DBの接続方式は?ADOとかDAOなどがありますよね。
2.Aに元のテーブルがあるんですよね。Bにも同じテーブルが存在してるのですか?テーブルの作成から行うのですか?
2-1.もしテーブルの作成から行うのであれば、キーとかの情報も全てコピーするのですか?
2-2.もしテーブルの作成を行わないのであれば、すでにBに入っているデータは消去するのですか?
この回答への補足
DBの接続はADOです。テーブルはまったく同じものです。しかしテーブルは複数あり全部同じです。
2 テーブルの作成はしないです。テーブルの中味のデータだけをコピーしたいです。
2-2 Bには行っているテーブルは消去します。
すいません補足させていただきます。
No.3
- 回答日時:
詳細な用途がわからないのでなんとも回答が難しいです。
DBのまるごとバックアップなのか、追記でもよいのか。
スピードを優先されたい様ですが、
BのDB自体を一旦削除し、
AのDBをBとしてリネーム(又はコピー)するっていうのはいかがですか?
この回答への補足
練習用のDBと本番用のDBと内容がまったく同じであるのですが、帳票を使っているため帳票用のテーブルはコピーはできないみたいなので全部で約20テーブルくらいのテーブルの中味だけをコピーしたいです。
やっぱり1レコードづつループでまわすしかないでしょうか??
No.5
- 回答日時:
まとめますと…。
1.デバッグ用DB(A)、本番用DB(B)があり、
BへAのレコードをテーブル毎に移行(コピー?)したい。
(どっちが本番用かは?です)
2.Bの帳票テーブルには削除できないレコードがある為、
帳票テーブルについては追記を行いたい。
⇒主キーが重なる場合は移行は行わない。
※ここで問題となるのがその他のテーブルで、
Bの既存レコードはどうするのでしょう?
(1)テーブルの内容をクリアしてまったくAと同じにするのでしょうか?
(2)もしくは追記を行い主キーが重なった場合は上書きとするのでしょうか?
こんな感じでしょうか?補足お願い致します。
P.S.
VBでDBバックアップツールを開発していらっしゃるのでしょうか?
この回答への補足
Bの中にあるレコードの中味は消去します。
あるテーブルだけ残してほかのテーブルの中味を全部いれたいのです。
私は普通のVBでのシステムを開発しています。バックアップはやっていないです。
本当に話がわかりずらい文章ですいません。
No.6ベストアンサー
- 回答日時:
サンプルです。
データレコード1件づつやらないでもできます。
CopyTableに二つのファイルパス(元、先)を指定してください。
Private Const CONNECTCONST As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
Sub Main()
Call CopyTable("c:\A.mdb", "c:\B.mdb")
End Sub
Sub CopyTable(inSrcDB As String, inDstDB As String)
Dim Cnn As ADODB.Connection
Dim Cat As ADOX.Catalog
Dim wkTbl As ADOX.Table
Dim strConnect As String
Dim strTblName As String
Dim strSQL As String
'まず初期化
Set Cnn = New ADODB.Connection
Set Cat = New ADOX.Catalog
'DBの接続文字
strConnect = CONNECTCONST & inSrcDB & ";"
'接続
Cnn.Open strConnect
'カタログ作成
Cat.ActiveConnection = Cnn
'カタログの中から、システムテーブル以外のものについて処理を行います。
For Each wkTbl In Cat.Tables
If wkTbl.Type = "TABLE" Then
'テーブル名を取得
strTblName = wkTbl.Name
'コピー先のテーブルデータを削除するSQL文の実行
strSQL = "delete from [" & inDstDB & "]." & strTblName
Cnn.Execute strSQL
'コピー元をコピー先へデータをコピーするSQL文の実行
strSQL = "insert into [" & inDstDB & "]." & strTblName & _
" select * from " & strTblName
Cnn.Execute strSQL
End If
Next wkTbl
Cnn.Close
Set Cnn = Nothing
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
手動または分散トランザクショ...
-
Accessで別mdbのテーブルをコピー
-
『列名 '担当者CD' があいま...
-
DataGridの中身をDataSetにテー...
-
VBとアクセスでSQL文に変...
-
他のMDBのテーブルに追加したい
-
C# OleDbDataAdapter.Fillメソ...
-
ACCESS2010 実行時エラー 2766
-
ExcelVBAからAccessMDB内のテー...
-
HTMLのテーブルの行数が多くな...
-
VB.NETでのAccessテーブルリンク
-
[C#] DataGridViewでコンボボッ...
-
エクセルのテーブルを解除する...
-
AccessからExcelへエクスポート...
-
Access2007でアプリケーション...
-
【ADO】「Execute」を使うと...
-
asp.net mvcを利用する場合の複...
-
.net 複数の主キーを設定する方法
-
ACCESSで項目の一部を取り出し...
-
DataGridViewに複数テーブルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
『列名 '担当者CD' があいま...
-
SQLを発行とは?クエリの作成と...
-
VBとアクセスでSQL文に変...
-
Accessで別mdbのテーブルをコピー
-
手動または分散トランザクショ...
-
エクセルのテーブルを解除する...
-
CSVファイルのエクスポートでソ...
-
AccessからExcelへエクスポート...
-
HTMLのテーブルの行数が多くな...
-
ACCESS2010 実行時エラー 2766
-
ExcelVBAからAccessMDB内のテー...
-
Excel複数シートをaccessへ一括...
-
DataGridViewに複数テーブルの...
-
他のMDBのテーブルに追加したい
-
ワークテーブルの作成について
-
★クリスタルレポートの元になる...
-
COBOLのINVALID KEYが理解でき...
-
VBでコンボボックスとテキスト...
-
VB.NETでのAccessテーブルリンク
-
Accessのフォームでリス...
おすすめ情報