データベースの勉強を始めたばかりの者です。宜しくお願いいたします。
既存のAccessのデータベース(XXX.accdb)をVisualBasic2017で読み込み制御したいと思い勉強してい
ます。NameTableとNamaeTableが次のような構造であった場合に、欲しいデータ形式で
取得する方法を教えて頂きたいのですが、どなたか詳しい方いらっしゃいますでしょうか?
宜しくお願い致します。
NameTable
ID | Name | Field
01 | 岡田 | Namae1
02 | 山田 | Namae2
03 | 桜井 | Namae3
04 | 林田 | Namae4
05 | 栗林 | Namae5
NamaeTable
ID | Namae1 | Namae2 | Namae3 | Namae4 | Namae5
ID | 太郎 | 隆二 | 健一 | 武 | 広美
欲しいデータ形式
ID | Name | Filed
01 | 岡田 | 太郎
02 | 山田 | 隆二
03 | 桜井 | 健一
04 | 林田 | 武
05 | 栗林 | 広美
No.2ベストアンサー
- 回答日時:
先の方が回答されている通り、テーブルの設計が良くないです。
1カラムずつ取り出したものをUNIONでまとめて、それと結合するぐらいしか思いつきません。
下の例はSQLiteでは動きましたが、Accessのデータベースで動くかどうかはわかりません。
SELECT
NameTable.ID, NameTable.Name, NamaeTableTrans.Field
FROM
NameTable
LEFT JOIN
(
SELECT 'Namae1' AS ColumnName, Namae1 AS Field FROM NamaeTable
UNION SELECT 'Namae2' AS ColumnName, Namae2 AS Field FROM NamaeTable
UNION SELECT 'Namae3' AS ColumnName, Namae3 AS Field FROM NamaeTable
UNION SELECT 'Namae4' AS ColumnName, Namae4 AS Field FROM NamaeTable
UNION SELECT 'Namae5' AS ColumnName, Namae5 AS Field FROM NamaeTable
) NamaeTableTrans
ON NameTable.Field = NamaeTableTrans.ColumnName
;
早速のご指導ありがとうございます。
DBの構造が部分的で、実は、フィールドの数が変動します。
ご丁寧にサンプルまで書いて頂いたおかげで、データベース側の処理ではなく、ソフト側で処理する必要がありそうなことが判りました。
また、勉強してわからないことがあればご指導のほどよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 野球 オールスターゲーム セ・リーグ 1 2022/06/07 23:46
- Excel(エクセル) エクセルの参照について教えてください 1 2022/12/08 16:06
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- 野球 世界一ですか 4 2022/11/11 06:17
- 野球 世界一ですか 2 2022/11/11 06:15
- 野球 日本代表 これで世界一ですか 2 2022/11/11 05:59
- 政治 誰推しですか?東大率高めですけど 岸田文雄→早稲田大学法学部 山口那津男→東京大学法学部 泉健太→立 4 2022/07/04 03:14
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- MySQL mysqlの結合について教えてください 1 2022/05/19 15:13
- MySQL 【MySQL】本当に困っているので、助けてください。よろしくお願いします。 3 2023/06/03 14:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースの最適化をマクロ...
-
accessの勉強ができるサイトは?
-
CDの売上枚数を知りたいのですが
-
データベースの選定について 要...
-
DB2 UDBって?
-
AndroidからのAccessデータベー...
-
AccessとSQL Serverの違い
-
マクロでデータベースの最適化...
-
Accessのレポートで「縦書き」...
-
バッファプールって?
-
アクセスのデータがブッ壊れた...
-
ADODB.Recordset エラー '800a0...
-
今年亡くなった有名人を一発で...
-
「桐」の得手不得手
-
【エクセル】自動保存先として...
-
SQLの文、節、句について
-
lotus Notesのメール受信フォル...
-
oracleで別のグローバルデータ...
-
DB2で複数DBからSELECT等
-
IPアドレスを数値に変換
おすすめ情報
NamaeTableのIDフィールドのRow(O)は、01でした。(誤記)