ACCESSテーブル内で文字の置換

このQ&Aのポイント
  • Access2007+VBAを使用して、特定の文字をテーブル内で置換する方法を教えてください。
  • テーブルAのフィールドCにはデータのIDが入っており、テーブルBのフィールドDには置換えたい日付が入っています。マッチしたIDの日付を置き換える方法を教えてください。
  • IDはオートナンバー型ではなく、フィールドDの日付は『日付は2015-12-22です。』のような形式です。同じIDの場合、フィールドCのIDとテーブルBのフィールドEのIDがマッチします。
回答を見る
  • ベストアンサー

ACCESS テーブル内の特定の文字の置換

お世話になっております。 Access2007+VBAについてになります。 フィールド内の特定の文字を置き換えたいのですが、どのようしたら良いでしょうか。 例えば・・・ テーブル_Aと、テーブルBがあります。 テーブルAには、フィールドCに抽出したいデータのIDが入っています。 テーブルBには、フィールドDに置換えたい日付が入っています。 フィールドDの日付は、『日付は2015-12-22です。』となっており、 フィールドCのIDと、テーブルBにあるフィールドEというIDがマッチしたフィールドDの日付を、『日付は、2015-12-23です。』に置き換えたいと思っています。 IDは、両方ともに、オートナンバー型ではありません。 色々試してみたのですが、全く分かりません。 是非、ご教授をお願い致します。

  • Fujjy
  • お礼率77% (203/262)

質問者が選んだベストアンサー

  • ベストアンサー
  • naoto0216
  • ベストアンサー率46% (183/391)
回答No.3

まずクエリの画面で、テーブルAのフィールドCとテーブルBのフィールドE を紐付けます。 で、テーブルBのフィールドDを『日付は、2015-12-23です。』で 更新するだけだと思います。 で、この更新クエリをVBAで実行したいのであれば、 Dim MySQL AS String MySQL = "UPDATE テーブルA INNER JOIN テーブルB ON [テーブルA].[フィールドC] = [テーブルB].[フィールドE] SET [テーブルB].[フィールドD] = '日付は、2015-12-23です。';" DoCmd.SetWarnings False DoCmd.RunSQL MySQL DoCmd.SetWarnings True を実行すれば、更新されるはずです。

Fujjy
質問者

お礼

画像入りでありがとうございました。 大変わかりやすく嬉しく思っております。

その他の回答 (2)

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.2

こんにちは 日付だけをプラス日するのですか? それとも単純にデータを置き換えるだけですか? 置き換えるだけなら、SQLビューに UPDATE B INNER JOIN A ON B.E = A.C SET B.D = "日付は、2015-12-23です。"; として実行するだけです。

Fujjy
質問者

お礼

ありがとうございます。 やってみます。

  • -9L9-
  • ベストアンサー率44% (1088/2422)
回答No.1

VBAはわかりませんが、更新クエリで簡単にできると思います。 テーブルAとテーブルBを、IDをキーにした一対一リレーションシップを組んだ上で、フィールドDを表示するクエリを作成し、更新クエリとして日付を入力すればいいでしょう。 http://www.helpforest.com/access/ob_query/ac050011.htm

Fujjy
質問者

お礼

リレーションがあるクエリですと、この方法だとできないような気がします!

関連するQ&A

  • ACCESS テーブルの結合

    同じmdb内で複数テーブルがあります。(テーブル1から10まで)フィールド名はすべて同じです。それぞれのテーブルのIDは1からオートナンバーになってます。 【例】 テーブル1  フィールド名: ID A B C テーブル2   フィールド名:ID A B C  ・ ・ テーブル10   フィールド名:ID A B C  ひとつのテーブルで管理したいのですが・・・教えてください。

  • Access クエリで新規テーブルを作成

    お世話になります。 クエリで新規テーブルを作成することは可能でしょうか。 テーブル作成クエリだと、既存のテーブルで抽出した内容で新規に作成する ことになるかと思います。 今回はまっさらな新規のテーブルを作成したいところです。 例えば、フィールド名とデータ型が  ID オートナンバー  受注日 日付型  商品   テキスト型 の場合だと、どのようになりますでしょうか。 ご教授の程、宜しくお願い致します。

  • Accessで煮詰まってます!!助けてください!

    初心者です。困っています。 テーブルAにはフィールドB、C、Dがあります。 B、Cには日付が入力されています。 今、抽出したいのはB、Cの日付が一致していているデータだけ抜きたいのです。Cには空白のところもありますが、表示させます。あくまでもB,Cが一致だけ抜きたいのです。 どうしたらいいでしょうか?助けてください。

  • Accessで2つのテーブルのデータの整合性を確認したい

    Accessで2つのテーブルのデータの整合性を確認したいのですが、よい方法を教えていただけませんか? 状況は以下のとおりです。 Aテーブル    a   b    c   d   e       1  111  222  333  444  555 2  666   777 888 999 100 3   110 112 113 114 115 Bテーブル    a   b    c   d   e       1  111 222 333 444 555 2  666 777 000 999 100 3   110 112 300 400 500 ・AテーブルとBテーブルがあり、それぞれのテーブルのa、b、dフィールドのみを対象に、その値がAテーブルとBテーブルとで等しいかどうか調べたい。 (c、eフィールドの値が異なっていても、a、b、dフィールドの値が同じであればそのレコードはOKとし、a、b、dフィールドで1つでも異なる値があればNGとし、抽出したい。 例えば、Bテーブルの1、2レコードはOKだが、3レコードはNG) ・それぞれのテーブルのaフィールドが主キーになっている。 うまく説明できず、わかりにくいかもしれませんが、よろしくお願いします。

  • データ処理に関する質問(Access VBAーDAO)

     AccessVBA初心者です。いつもお世話なっております。 環境 OSーXPsp2 office2003 テーブル1とテーブル2あって、テーブル1にデータはいってます。テーブル2は空です。 ACCESS VBA DAOで テーブル1のデータの[店名]、[氏名]を テーブル2に横に追加していきたいです。 テーブル2 構造 ID(オートナンバー)  [店名]1 [氏名]1 [店名]2 [氏名]2  --------------------------------------------------------- テーブル1のデータ ID(オートナンバー)  [店名] [氏名]   1           A    Aさん   2           B     Bさん    3           C     Cさん    4    D       Dさん ----------------------------------------------------- 結果 テーブル2 ID(オートナンバー)  [店名]1 [氏名]1 [店名]2 [氏名]2  1            A   Aさん   B   Bさん 2            C   Cさん   D   Dさん ACCESS VBAでの書く方 教えてください。宜しくお願い足します。

  • Access テーブルを繋げたり、文字を抜き出したりしたい

    Access2003です。 Aテーブル Bテーブル Cテーブル 名前    ランク   備考 あああ   AAA     ABC いいい   BBB     DEF ううう    CCC     GHI えええ   DDD     JKH ※フィールド数は、各テーブルに1つのみ とあります。 これをクエリで編集したいのですが、行いたいことが2点 1)1文字挿入して繋げる AテーブルとBテーブルを繋げるのですが、間に1文字挿入したいです。 「あああ~AAA」 と、「~」を挿入 2)1文字だけ抜き出す Cテーブルの真ん中の1文字だけ抜き出す 1レコード目だと、「B」だけ抽出 基本的な操作かもしれませんが、出来ません。

  • 【Access】同じようなテーブルを一つにまとめたいのです(-人-)

    アクセスについて質問します。 複数のテーブルに同じ名前のフィールドと違う名前のフィールドがいくつかあります。 そのテーブルを一つにまとめたいのですが、どうしたらいいのでしょう? 一例として下記のようなかんじです。 賢い方、教えてください。お願いします。 テーブル1 A   B  C あ  い  う あ  い  う か  き  く テーブル2 A   B  D さ  し  す た  ち  つ て  と  な ↓一つの大きなテーブルにしたい↓ A   B  C   D あ  い  う あ  い  う か  き  く さ  し      す た  ち      つ て  と      な

  • SQL文でテーブルを作りたいのですが・・・

    テーブルを作りたいのですが、思い描くテーブルが作れず、困っています・・・ 例えばMさんがA→B→C→Dと旅行に行ったとします。 そのとき、行った場所によって日付が登録されるようにしたいと思っています。 このように、別な人もいろいろと旅行し、それぞれの日付があり、どんどんと格納していきます。 最初に ID id 日付 date 場所 point (名前はとりあえず、IDとします) でテーブルを作ろうとしましたが、これだとID一つにつき、日付と場所も一つずつしか入りませんよね? どういったテーブルを作ればいいでしょうか? 思い描くテーブルは下記のような感じです。 ID     日付      場所 -------------- 1  |2010/10/06 |  A   |2010/10/14 |  B   |2010/10/20 |  C   |2010/10/25 |  D -------------------------- 2  |2010/10/23 |  B    |2010/10/24 |  A    |2010/10/25 |  D    |2010/10/27 |  C -------------------------- 3  |2010/10/25 |  D    |2010/10/27 |  C    |2010/11/03 |  B    |2010/11/04 |  A    |2010/11/07 |  D    |2010/11/10 |  C ------------------------- 4  |2010/11/10 | B    |2010/11/15 |  A    |2010/11/16 |  D ・・・・・・・・・・・・・・・ このように一つのIDに対して、日付と場所がランダムの数で格納したいのですが、これって可能でしょうか? テーブルを2つ(以上)作り、外部キーを使ってもかまいません。 また、足りなければ違うIDなどでカバーしてもかまいません。 実際は、このようなテーブルを作り、一人毎の動線を調べるために活用したいと思っています。 Mさん:今日はAに行って、明日はBに行き、明後日はCに行った。すなわち動線は・・・のような感じです。 SQL文でテーブルを作ってください。 補足事項等ありましたらご指摘下さい。追加いたします。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • Access 複数テーブルのレコード自動更新

    Access初心者です。会社で業務の進捗状況を、Access2002を使って管理しています。 フィールド数が増えたので、以下のようにテーブルを分けることになりました。 Aテーブル(メイン)   管理No.(主キー、オートナンバーではない)    カテゴリ    作業内容    : Bテーブル   管理No.(主キー、オートナンバーではない)    チェック項目B-1   チェック項目B-2    : Cテーブル   管理No.(主キー、オートナンバーではない)    チェック項目C-1   チェック項目C-2    : という形式で、AとB・Cはクエリのリレーションシップで、「管理No.」を1対1で関連づけています。 AテーブルのもとのデータはExcelからインポートしますが、 Aテーブルのレコード数は増えますが、クエリには反映されません。 Aのレコードが増えたら、BやCも同時に増やすことはできますか?

  • Access2010 テーブルのフィールドについて

    Access2010を使用しています。 テーブルのフィールド定義 [A][B][C][D][E][F][G] ↓ テーブルを開くと [A][B][C][E][F][G][D] と勝手に変わる (あるフィールドだけ、別の場所に移動) ↓ フィールドの並び順を [A][B][C][D][E][F][G] に戻す ↓ 保存してテーブルを閉じる ↓ 再度開くと [A][B][C][E][F][G][D] と変わってしまう。 この繰り返しです。 どなたか、お助け下さい。 よろしくお願いいたします。

専門家に質問してみよう