ある Access データベースのテーブルから別の Access データベースのテーブルにデータを移動する必要がある単純なレポート ツールを作成しています (テーブル構造は同じです)。ただし、私は C# を初めて使用するので、信頼できる解決策を見つけるのが難しいと感じています。
任意のポインタをいただければ幸いです。
Access SQL では、IN 句を使用して、テーブルが別のデータベースに存在することを指定できます。次の C# コードは、[YourTable] という名前のテーブルから行を選択し、[YourTable]Database1.accdb
という名前の既存のテーブル (同じ構造を持つ) に挿入しますDatabase2.accdb
。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
namespace oleDbTest
{
class Program
{
static void Main(string[] args)
{
string myConnectionString;
myConnectionString =
@"Provider=Microsoft.ACE.OLEDB.12.0;" +
@"Data Source=C:\Users\Public\Database1.accdb;";
using (var con = new OleDbConnection())
{
con.ConnectionString = myConnectionString;
con.Open();
using (var cmd = new OleDbCommand())
{
cmd.Connection = con;
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText =
@"INSERT INTO YourTable IN 'C:\Users\Public\Database2.accdb' " +
@"SELECT * FROM YourTable WHERE ID < 103";
cmd.ExecuteNonQuery();
}
con.Close();
}
Console.WriteLine("Done.");
}
}
}
多くの方法。
0) 一度だけの場合は、表をコピーして貼り付けます。
1) Access 内でこれを行う場合、最も簡単な方法は、新しいデータベースにリンク テーブルを作成し、新しいデータベースでテーブル クエリを作成することです。
2) 2 番目のテーブルを直接参照できます。SELECT * FROM TableInDbX IN 'C:\SomeFolder\DB X';
3) マクロでは、DoCmd オブジェクトの TransferDatabase メソッドを使用して関連するテーブルをリンクし、適切な追加および更新クエリを実行して同期することができます。
4) VBA http://www.techonthenet.com/access/questions/new_mdb.php