2017-04-05 11 views
0

私は自分のアクセスデータベース(dbo_Billing_denied(DSN = WTSTSQL05_BB; DATABASE = DEPTFINANCE)など)にリンクテーブルを持っており、このデータを格納するテーブルを作成したいローカルテーブルにリンクされているので、他のクエリを実行するために使用できます。現在、私は接続ができないことを伝えているので、これを使うことができます(ODB - 'WTSTSQL05_BB'への接続に失敗しました)リンクされたSQLテーブルからのローカルテーブルの保存/作成

まず、テーブルを作成してからすべてのフィールドを割り当てる必要がありますテーブルとリンクテーブル内のフィールドと同じフィールドとこれを行う追加クエリを作成する...)?

+0

dbのコピーを試して、テーブルを右クリックしましたか? – Fionnuala

答えて

0

2つの問題があるようですが、私は2番目の問題に取り組んでいます。

Accessで "make table query"を使用して、リンクテーブルのローカルコピーを作成することができます。これにはGUIを使用するか、またはSQLを構造化することができますこのようなもの:

SELECT <list of various fields, or * for all fields> 
INTO <name of new local table> 
FROM <name of linked table(s) on the server> 
WHERE <any other conditions you want to put on which records are included>; 

私は、複数のテーブルが存在する可能性があると述べました。これは、結合された表または共用体などでも実行できます。「where」節はオプションです。それを削除すると、データセット全体がコピーされます。

Accessでこのクエリを実行しようとすると、警告が表示されます。テーブルを書き込む(または上書きする)ことを伝えます。エンドユーザーにとって迷惑メールが少ないクリーンなアプリケーションを作成しようとする場合は、マクロからこのクエリを呼び出します。マクロは、警告をオフにし、クエリを実行してから、警告を元に戻す必要があります。

Microsoft Accessでは、このテーブルを作成する前にこのテーブルを作成する必要はありません。テーブルが存在しない場合は、ソースデータのフィールド定義に基づいて、このテーブルが作成されます。同じ名前のテーブルが存在する場合、Accessはデータベースからこのテーブルを削除し、その名前の新しいテーブルを作成します。

これは、生成しているローカルテーブルに固有の名前が必要であることを意味しています。クエリが同じ名前を使用してリンクテーブルを上書きしようとする場合、まずAccessが行うことはリンクテーブルを削除することです。次に、フィールド定義と入力したデータを、それが削除したリンクテーブルで探します。

新しいローカルテーブルに新しい名前が付けられるため、リンクテーブル用に開発されたクエリは新しいローカルテーブルでは機能しません。 1つの回避策として、ローカルのAccessデータベースでリンクテーブルの名前を変更することが考えられます。 Accessのテーブル名は、リンク先のデータベースの名前と同じである必要はありません。クエリは、正しい名前のテーブルに書き込むことができ、以前のクエリが機能するはずです。それでも、これらのクエリは実際のデータでは機能しなくなることに注意してください。

関連する問題