• 締切済み

ACCESS2000について

複数のexcelファイルをリレーションシップで結合しようとしていますが、1つのファイルのデータ内容をキーにしてその他のファイルのデータを結合する方法を教えて下さい。 例)a,b.c.の3つのexcelファイルがあります。 aファイルの1~10までの項目があり、bファイルには1~5まで、cファイルには6~10までデータあったといき、表示させたいのがaファイルをベースにして1~10までに、6~10はbのデータを「0」表示、1~5はcのデータを「0」表記させたいのです。 ※上記の場合通常データ表示されないと思います。 ____a___b___c 1 あ 20 0 2 い 30 0 3 う 50 0 4 え 40 0 5 お 10 0 6 か 0 20 7 き 0 10 8 く 0 30 9 へ 0 40 10 こ 0 50

みんなの回答

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

ExcelのシートをAccessのテーブルにリンクしている場合は aファイルにID・a(かな) bファイルにID・b(値) cファイルにID・c(値) とした場合 クエリのSQLビューに SELECT a.ID, a.a, IIf(b![b] Is Null,0,b![b]) AS b, IIf(c![c] Is Null,0,c![c]) AS c FROM (a LEFT JOIN b ON a.ID=b.ID) LEFT JOIN c ON a.ID=c.ID ORDER BY a.ID; で表示できます。

mohi-mohi
質問者

お礼

ありがとうございます。 SQLを勉強してみます。

回答No.1

/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/ まず3エクセルブックを用意し、データを作成します。 カンマ区切りになっていますが、それぞれ、異なるセルに値を反映してください。 /*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/ ※C:\エクセル\A.XLS ---------------------- Sheet1のデータ ---------------------- ID,ひらがな 1,あ 2,い 3,う ・・・ 10,こ ※C:\エクセル\B.XLS ---------------------- Sheet1のデータ ---------------------- ID,Bの値 1,20 2,30 3,50 4,40 5,10 ※C:\エクセル\C.XLS ---------------------- Sheet1のデータ ---------------------- ID,Cの値 6,20 7,10 8,30 9,40 10,50 /*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/ 以下のSQL文を、SQLビューにて、貼り付けてください。 http://okweb.jp/kotaeru.php3?q=1545973 の#3でSQLビューの出す手順を書いてます。 /*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/ SELECT ブックA.ID ,ブックA.ひらがな ,iif(ブックB.Bの値 is null,0,ブックB.Bの値) as B値 ,iif(ブックC.Cの値 is null,0,ブックC.Cの値) as C値 FROM ( [Excel 5.0;Database=C:\エクセル\A.XLS].[Sheet1$] as ブックA LEFT JOIN [Excel 5.0;Database=C:\エクセル\B.XLS].[Sheet1$] as ブックB ON ブックA.ID = ブックB.ID ) LEFT JOIN [Excel 5.0;Database=C:\エクセル\C.XLS].[Sheet1$] as ブックC ON ブックA.ID = ブックC.ID

mohi-mohi
質問者

お礼

回答ありがとうございます。 勉強してみます。

関連するQ&A