![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_03.png?5a7ff87)
こんにちわ。
いつもお世話になっております。
以下の図で説明させて下さい。
テーブルA
ID | 氏名 | 内容 |
------|--------|--------------|
1 | テスト| 項目1:契約 |
1 | テスト| 項目2:解約 |
1 | テスト| 項目3:不明 |
2 | 試験 | 項目1:契約 |
2 | 試験 | 項目2:解約 |
------------------------------
テーブルB
ID | 氏名 | 項目1 | 項目2 | 項目2 |
------|--------|--------------|--------------|--------------|
1 | テスト| | | |
2 | 試験 | | | |
------------------------------------------------------------
テーブルAの内容にある文字列をテーブルB
の同じIDのレコードに更新したいと考えています。
例えばテーブルAのID1番の「項目1:契約」を「項目1:」以降の文字列をテーブルBの
項目1に更新したいと言った感じなのです。
最終的にはテーブルAの内容を全てループ等でテーブルBに更新したいのですが
いいアイディアが思いつきません。
どなたかご教示頂けますでしょうか?
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
ループによる処理方法も考えてみましたが、ちょっと面倒そうでしたので、以下の方法を
代替策として提案します。
下記のクロス集計クエリ(クエリA)とテーブル作成クエリ(クエリB)を作成して、クエリBを
実行すると、テーブルBが得られます。
クエリA:
TRANSFORM First(Mid([内容],5)) AS 内容詳細
SELECT テーブルA.氏名
FROM テーブルA
GROUP BY テーブルA.氏名
PIVOT Left([内容],3);
クエリB:
SELECT クエリA.氏名, クエリA.項目1, クエリA.項目2, クエリA.項目3 INTO テーブルB
FROM クエリA
WITH OWNERACCESS OPTION;
※「項目」が1~3以外もある場合は、クエリAを基にした追加クエリを新規作成して下さい。
(「項目1」が「項目I」(→アルファベットのアイ)や「個目」(→「こうもく」を「こもく」と打った)
になっているなど、「項目」部分のデータ誤記をチェックする意味でも、この手順を踏む
方が無難かもしれません)
なお、上記のクエリは、「:」が常に4文字目にある前提で組んでいます。
もしも「項目10:エラー」といった、「:」が4文字目以外のデータにも対応する必要がある
場合は、クエリAを以下のように変更してください:
TRANSFORM First(Mid([内容],InStr([内容],":")+1)) AS 内容詳細
SELECT テーブルA.氏名
FROM テーブルA
GROUP BY テーブルA.氏名
PIVOT Left([内容],InStr([内容],":")-1);
但し、こちらにすると、全てのデータに必ず「:」が含まれていることが前提になります。
(含まれていないデータがある場合、「プロシージャ呼び出しが正しくありません」との
エラーが表示され、クエリAの結果が表示できず、クエリBもエラーになります)
「:」を間違えて「;」と入力しているなど、「:」を含まないデータは、以下のクエリで確認
できます:
SELECT テーブルA.内容
FROM テーブルA
WHERE (((テーブルA.内容) Not Like "*:*"));
・・・以上です。
DexMachinaさま
ありがとうございます。
自分もループを考えていたのですがややこしくて困っておりました。。。
クロス集計は思いつきませんでした。
助かりました!ありがとうございます。
うまく期待通りの動きになりました。
エラーまで予測に入れて頂き、ご丁寧なご教示を頂きました事感謝致します。
ありがとうございました。
No.1
- 回答日時:
これはエクセルの質問ですか。
書いてないのでは。質問の例は丁寧なんだが何を言っているか判らない。
>例えばテーブルAのID1番の「項目1:契約」を「項目1:」以降の文字列をテーブルBの項目1に更新したいと言った・・
など。
氏名と見出しを付けたら、山田とか鈴木としたらどうです。
氏名が試験やテストとは見るものが混乱する。
更新というのもプログラム用語でわかりにくい。
表現として、「同じ氏名の複数行のデータについて、氏名以外の情報を1行にまとめたい」というのはどうかな。
VBAでやるのが一番簡単な考え方になると思う。
行的に、同じ氏名が続く限り、右列に順次項目を追加すればよいのでしょう。
>アイディアが思いつきません。
プログラム経験が非常に少ないからだよ。
この回答への補足
ありがとうございます。
>これはエクセルの質問ですか。書いてないのでは。
失礼しました。ACCESSとなります。
>質問の例は丁寧なんだが何を言っているか判らない。
申し訳ありません。
例えばテーブルAの「ID」1番の内容にあります「項目1:契約」「項目2:解約」「項目3:不明」をテーブルBの項目1に「契約」を項目2に「解約」を項目3に「不明」を1行にまとめたいと考えて考おります。
しかし、VBAを書きたいのですがイメージが湧かないという状態です。
>氏名と見出しを付けたら、山田とか鈴木としたらどうです。
>更新というのもプログラム用語でわかりにくい。
確かにそうですね。
以後、気をつけさせて頂きます。
>プログラム経験が非常に少ないからだよ。
仰るとおりです。
経験を積んで行きたいと思っております。
よろしければご教示下さいませ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle SQL update方法 2 2022/06/22 14:07
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- JavaScript html javascriptにてWeb SQLを操作したい。 2 2022/12/16 17:43
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- 賃貸マンション・賃貸アパート 居住用賃貸アパートにサロン出店 4 2023/04/02 22:30
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS DCOUNTの抽出条件について
-
データがあれば○○なければのSQL
-
【access】複数のフィールドの...
-
Accessで縦と横を入れ替えたい
-
DataGridViewで複数条件の抽出...
-
SQLServer→Access インポート
-
重複した複数のレコードを1レ...
-
抽出条件でデータ型が一致しま...
-
データシート(サブフォーム)...
-
社員名簿から検索する関数
-
VB.NETでテーブルを作成
-
ACCESSで購入回数を表示する方...
-
VBAでテーブル名とカラム名を動...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
CloseとDisposeの違い
-
EXCEL VBA マクロ 実行する度に...
-
エクセルVBAで、MsgBox やInput...
-
DoEventsがやはり分からない
-
Excelシート上のマクロを登録し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS VBAでテーブル内の特定...
-
データがあれば○○なければのSQL
-
ACCESS DCOUNTの抽出条件について
-
Access vbaで重複レコードの削...
-
【access】複数のフィールドの...
-
抽出条件でデータ型が一致しま...
-
Accessで縦と横を入れ替えたい
-
別のaccessファイルからデータ...
-
sql文で削除クエリを書く
-
VBAでテーブル名とカラム名を動...
-
SQLServer→Access インポート
-
ACCESSのクエリ、SQLに変数を使...
-
重複した複数のレコードを1レ...
-
DAOでSQLServerに接続し、LeftJ...
-
アクセスで定数を利用したい。
-
アクセスで連続データをテーブ...
-
Access から Excelのシートをイ...
-
VB.NETでテーブルを作成
-
access追加クエリーでform入力...
-
社員名簿から検索する関数
おすすめ情報