- ベストアンサー
Access2003で異なるテーブルを1つにくっつける方法は?
- Access2003で異なるテーブル同士を結合する方法について質問させていただきます。
- 具体的には、異なるフィールドとキーを持つテーブルAとテーブルBを横並びにくっつけることができるのかを知りたいです。
- インターネットで調べましたが、解決策が見つからないため、こちらで質問させていただきました。お助けいただければ幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
テーブルCを作る必要があると思います。 テーブルCを作る時、フィールド名に同じ「得意先」が使えないので以下のような構成にして事前に作成しておきます。 テーブルC: 「客先」「売上高」「仕入先」「仕入高」 テーブルA/B/C の名前は、T_A/T_B/T_C と仮定します。 テーブルCを作成するボタンをクリックした時、以下の処理を行います。 (ADOでの例となります) Private Sub ボタン_Click() Dim rsA As New ADODB.Recordset Dim rsB As New ADODB.Recordset Dim rsC As New ADODB.Recordset Dim bNoneAB As Boolean CurrentProject.Connection.Execute "DELETE * FROM T_C;" rsA.Open "T_A", CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly rsB.Open "T_B", CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly rsC.Open "T_C", CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic Do While (1) bNoneAB = True If (Not rsA.EOF) Then bNoneAB = False rsC.AddNew rsC("客先") = rsA("得意先") rsC("売上高") = rsA("売上高") rsA.MoveNext End If If (Not rsB.EOF) Then If (bNoneAB = True) Then rsC.AddNew End If bNoneAB = False rsC("仕入先") = rsB("得意先") rsC("仕入高") = rsB("仕入高") rsB.MoveNext End If If (bNoneAB = True) Then Exit Do End If rsC.Update Loop rsA.Close rsB.Close rsC.Close End Sub ※必要なところしか埋めていないので、フィールドの既定値は適宜設定してください。
その他の回答 (1)
- goo39
- ベストアンサー率36% (13/36)
テーブルAに仕入高のフィールドを作り テーブルBを追加クエリでテーブルAに追加するのはどうでしょうか? イメージとしては 得意先 売上高 仕入高 あああ 100 いいい 200 ううう 300 えええ 400 おおお 500
お礼
早速のご回答有り難う御座います。 どうしても横並びにする必要があります。 結果(クエリ?)をもとに 得意先 売上高 得意先 仕入高 あああ 100 ううう 300 いいい 200 えええ 400 おおお 500 のレポートを作成したいので、どうしても横並び、かつ1行目から空白無くリスト表示させる必要があります。。。(><)
お礼
ありがとうございます!! 完璧です!!!望んでいた結果になりました!! 本当に有り難う御座いますm(__)m みなさんに負けぬよう、これからも頑張っていきます。