2017-09-29 13 views
0

2つのデータベースへの接続を持つMicrosoft Accessプロジェクトで作業しています.1つはAzureでホストされているSQL Serverで、もう1つはLinuxサーバーでホストされているMySqlです。2Dbに接続されたMS Access

私のフォームでは、MySQLからAzureサーバーにデータをインポートしようとしています。

Iが正常にデータベースに接続し、自分のデータベース

   From MySql /Linux  ---- INTO ---->   Azure/SQL 

両方手動でクエリを通って自分のコードを介して挿入に値を挿入しました。私のフォーム上の私のコードは基本的にはSQLのクエリを実行してMySQLのテーブルからSQL Serverデータベースを選択します。

宛先テーブルに一意の識別子(guid)である主キーがあります。もちろんこれはnullにはなりません。これをテストするには、SQL insert文を使ってテーブルにレコードを手動で挿入しました。これがうまく動作したので、ボタンのクリックイベントによって同じクエリがテストされたことをテストしました。どの作品。別のテーブルからレコードをインポートし、デフォルトでguidを作成します。しかし、さらにテストすると、私は空のテーブルを使って作業していたときに、別のテーブルに正常にインポートできないことに気づきました。アクセスはボタンクリックでクエリを実行しますが、レコードが転送されないことを警告します。

私の質問はなぜですか?空のテーブルに新しいレコードを正しく挿入するために欠けているものは何ですか?それは既存のレコードを持つテーブルでしか動作しないようです。

+1

これは本当に正確な設定とそのクエリが何をしているかによって異なります。私は誰もがこの情報をより詳細な情報なしで答えられるとは思わない。 –

+0

"空のテーブルを使って作業しても、別のテーブルに正常にインポートできない"と混乱している。もちろん、テーブルが空の場合、別のテーブルにインポートするレコードはありません。次に、「空のテーブルに新しいレコードを挿入する」と言う。したがって、空のインポート先テーブルはインポートに失敗しますか?それは奇妙です。ポストクエリーと分析のためのコード。 – June7

+0

ああ、私はそれを正しくフレーズしませんでした。私は空のテーブルに新しいレコードを挿入しようとしています。クエリのサンプルバージョンは次のようになります。INSERT INTO destTable(DateEntered、FirstName、LastName) SELECT sourceTable.DateCreated、sourceTable.FirstName、sourceTable.LastName sourceTable、destTable –

答えて

0

用語の問題がある可能性があります。 Accessの用語を使用する。 1つは2つのステップでこれを行います:クエリデザインビュー機能を使用します。

a。移動するレコードのテーブルを使用して選択クエリを作成します。それを名前で保存してください - 今はQ1と名づけましょう。

b。追加クエリを作成します。最初にレコードソースとしてQ1を選択してください。それをAppendとして識別すると、宛先テーブルが尋ねられ、それを選択します。次に、フィールドを適切に揃えます。これをA2クエリとして保存します。

あなたがする必要があることは、継続的な意味でA2クエリを起動することだけです。

アクセス用語では、[挿入]ではなく、[選択]、[追加]、[更新]、[挿入]を使用しているため、更新クエリのSQL構文は本当にINSERT INTOですが、上書きするレコードがあります。

これが役に立ちます。

関連する問題