プロが教えるわが家の防犯対策術!

昨日と同じところでつまずいているのですが、
みなさまご助言お願いいたします。

タイトルのようにSELECT INTO構文を
2種類のデータベースにまたがって使用したいと思っています。

Dim adoConA As ADODB.Connection 'データベースA
Dim adoConB As ADODB.Connection 'データベースB
Dim rs As ADODB.Recordset
Dim sSQL As String

sSQL = "SELECT * FROM 顧客情報"

' データベースAからテーブル取得
rs.Open sSQL, adoConA

' 取得したテーブルをデータベースBに新しいテーブルとして保存
?????

実際には、SELECT INTOは無理かなと思い、
上記のように、一度レコードセットに取得して
それをテーブルBに保存すると言う方法を行おうと
思っているのですが、やり方がわかりません。

もちろん、別の方法でも可能ならば
別の方法でも構いませんので、
おわかりになるのであれば教えてください。

A 回答 (2件)

> データベースは開発、データベースA、BすべてSQL SERVER 2000を使用しています。



であれば、出力先のテーブルをCREATE TABLE してから、
INSERT INTO ........ SELECT ........ FROM ........
で処理するのが最善だと思います。


> 一度レコードセットに取得してそれをテーブルBに保存する
性能面でお奨めできません。


# リンクサーバーの使用方法は、他の方のコメントに期待。(^人^;
    • good
    • 0
この回答へのお礼

Ribenrenさんご回答ありがとうございます。
できれば、私もINSERT INTOでやりたかったので、
可能と言うことであれば、ぜひそちらでやりたいと思います。
ただ、リンクサーバーの使用方法が・・・・
必死こいて、調べてますがうーん。むずかしい。

お礼日時:2003/10/29 15:27

どのデータベースをお使いなのでしょうか?



SELECT ........ INTO はJetの構文ですので、「データベースB」がOracleやSQL Server等の他種DBであれば、使用できません。
「データベースB」もJetのDB(*.MDB)なのであれば、テーブル名をフルパスで修飾して記述 ( Accessでいうところの「リンクテーブル」と同等な機能となります ) すれば可能です。
通常、単に
[TableName] と記述するところを

[DriveLetter:\......(Path)......\FileName].[TableName]

とすればOKです。
接続先がExcelの場合は、

[Excel 8.0;Database=DriveLetter:\......(Path)......\FileName].[WorkSheetName]

です。( CSVの場合もほぼ同様の構文が適用可能 )

この回答への補足

すいません。こちらの環境を書くのを忘れていました。

データベースは開発、データベースA、Bすべて
SQL SERVER 2000を使用しています。

補足日時:2003/10/29 15:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!