2017-05-16 12 views
-1

あるデータベースから別のデータベースへのクエリの結果をどのように入れるかアドバイスをいただければ幸いです。ADOを使用して1つのMS-Accessデータベースから別のMS-Accessデータベースにクエリ結果を挿入する

1つのデータベースに対して選択クエリを実行できますが、その結果(データ)を別のデータベースに移動/保存するにはどうすればよいですか?私はRad StudioでADOコンポーネントを使用しています - Delphiはローカルの* .mdbと* .accdbデータベースにあります。任意のヒント ?あなたの回答に感謝します。

+3

あなたは何を試しましたか?また、サンプルデータテーブルの構造 – Sami

+1

宛先データベースもms-accessですか(私はそうです)?宛先データベース/テーブルは存在するかどうか?彼らの構造は同じですか?ソースはADOのデータセット/クエリのものでなければなりませんか?詳細をご記入ください。 – kobik

答えて

2

あなたは、あなたがコピーしたいデータ行を選択するために使用するSQLのための特別な構文を使用してこれを行うことができますANAME。 2番目の空のデータベースd:\aaad7\ado\dest.mdbもあります。

次のコードは、テーブルATableを2番目のデータベースにコピーします。 AdoQueryCopy

AdoQueryCopy.SQL.Text := 'SELECT * INTO ATable IN "D:\aaad7\ado\dest.mdb" FROM ATable'; 
    AdoQueryCopy.ExecSql; 

d:\aaad7\ado\test.mdbを指す接続文字列を有するTADOQueryあります。

重要あなたはd:\aaad7\ado\dest.mdbATableのコピーを開きたい場合は、そうでないあなたには、いくつかのADOオブジェクトは、複数の結果セットを返すことができないといったエラーを取得する可能性があり、事前に使用しているAdoQueryCopy接続を終了する必要があります。私は確信していませんが、AdoQueryCopy.ExecSQLは、挿入された行を使って一時的なADOデータセットを作成するためです。

WHERE句を追加すると、2番目のデータベースのATableにコピーされた行を選択できます。

+0

あなたのアドバイスは私の問題解決に役立ちました、ありがとうございました! – Peter

+0

その場合、回答の左上にある「ダニ」アイコンをクリックして「同意してください」。 – MartynA

-3

あなたはTStringgrid多度入れデルファイ の新機能で、MDBからのすべてのデータがから 後で近いすべてのADO接続をGridcells mdb.and二Dbとの.accdbに接続するために取得する場合。 idkなぜaccdbですか? とグリッドからaccdbにadotable挿入データを開始します。 もしあなたのADTがaccdbに接続できなかったなら、1st mdbのコピーを作成し、 ".mdb"という名前で保存してみてください。 //あなたがプロであれば、//ADOTable1.SaveToFile();があります。

は、私は1つの文字列を含むAccessテーブル ATableを含む第一のデータベース d:\aaad7\ado\test.mdbを持って、次のように

+2

レコードをフィールド単位でコピーする場合は、ビジュアルコンポーネントを使用してレコードを作成するのはどうですか?それぞれのフィールドの 'Value'を一つのデータセットから他のデータセットに単純にコピーすることができます。しかし、それはあなたの答えが扱わないソーステーブルと同じ構造を持つデスティネーションテーブルを作成するという問題をあなたに残します。 – MartynA

+1

@MartynA、* "しかし、それでもソーステーブルと同じ構造のデスティネーションテーブルを作成するという問題が残っています" * OPはこの事実を言及していませんでした。 OPが詳細を提供しなかったので、私は答えたい動機がなかった。 – kobik

関連する問題