1

毎月、SQL Server ビジネス アプリケーションからすべての「管理レポート」を含む Access 2010 データベースに「新しい」データを取得する必要があります。Access データベースには、レポートの基になる生データを格納する「ステージング テーブル」があります。

Access の経験はありませんが、次のことを提案しました。

  1. 必要な生データを返すクエリ (ストアド プロシージャ?) を SQL Server に記述します (...このビットは簡単でした)。
  2. 毎月末に、Access 2010 内から SQL Server ストアド プロシージャを呼び出します (ボタンをクリックしますか?)
  3. ストアド プロシージャの結果を Access 内のステージング テーブルに保存します。

でも思ったより難しく感じます。コード ビハインドで ADODB を使用し、レコードセット内の行を 1 つずつループしてから、列の値を 1 つずつ設定するという醜い作業ができると思います。しかし、もっと良い方法があるはずです:)

  • Access 2010 から SQL Server データを取得するにはどうすればよいですか? (ADODB? DAO? QueryDesigner? その他?)

  • 活用できる「レコードセットをテーブルに挿入」(または同様の) メカニズムはありますか?

4

1 に答える 1

1

関連する SQL Server テーブルまたはビューを MS Access にリンクします。MS Access 構文を使用してリンク テーブルに対してクエリを実行し、ステージング テーブルを更新します。

クエリでインラインで SQL Server の接続文字列を使用して、MS Access テーブルを更新することもできます。

SELECT *
INTO   newtable
FROM   [odbc;filedsn=Z:\DSN\test.dsn].table1

SQL Server 側から作業すると、MS Access をリンク サーバーとして使用したり、クエリを実行してそこから更新したりできます。

INSERT INTO
OPENDATASOURCE(
   'Microsoft.ACE.OLEDB.12.0', 'Data Source=z:\docs\test.accdb')...[table1] 
   ( atext )
SELECT atext FROM table1 WHERE id=2
于 2012-09-11T09:34:24.623 に答える