テーブルにある文字列の一部を違う言葉に置き換えたいのですが・・・
同じテーブルに置き換えるか、別テーブルを作るかできればよいのですが。
全てのデータに入っているフィールドと、入っていないフィールドがあります。
できればVBAなどは使わずにできないものでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

 Accessには、「編集メニュー」に「置換」というものがあります。


 これを使うと、任意のフィールド内の任意の文字列を別の文字列に置換できます。
 ポイントとしては、置換するフィールドクリックしてから、メニュー操作を行ないます。置換のダイアログでは、検索条件として「フィールドの一部分」「フィールド全体」「フィールドの先頭」を選べます。
 ご質問では、Accessのバージョンも書かれていないので、詳しい条件などは、ヘルプをご覧ください。
    • good
    • 0

SQL文でできそうに思います。



もう少し詳しく記入してみてください。

(どんな文字列を何に置き換えるか、長さ、位置は同一なのか)
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qテーブルの一部を別のテーブルを使って更新したい

テーブルA…[住所]、[氏名]、[電話番号]、[携帯番号]、[変更日]
テーブルB…[氏名]、[自宅電話・携帯番号]、[変更日]

Bの[氏名]と[自宅電話・携帯番号]が、Aの[氏名]と[電話番号]、[携帯番号]に一致した場合、Aの[変更日]がBの[変更日]に更新されるようにしたいです。

以前、似たような質問で回答して頂いたのですが、条件が二つになり指定方法が上手くいかなくなってしまいました。

お手数お掛けしますが回答宜しくお願いします。

Aベストアンサー

UPDATE TBL_B
INNER JOIN TBL_A
ON ((TBL_B.自宅電話・携帯番号=TBL_A.携帯番号) Or (TBL_B.自宅電話・携帯番号=TBL_A.電話番号))
AND (TBL_B.氏名=TBL_A.氏名)
SET TBL_B.変更日 = TBL_A.変更日;

こんな感じかな?SQLビューでしか編集できません。
一応検証はしましたが自信が無いので、
バックアップを取って実行し、検証もしつこい位に行ってください。
当方Access2002

Q一つのテーブルの全てのフィールドを一気に半角にする方法

テーブル1に
フィールド1、フィールド2、フィールド3・・・と多数のフィールドがあり、
全ての全角文字を半角にしたいのですが
更新クエリで

UPDATE テーブル1 SET テーブル1.フィールド1 = StrConv([テーブル1]![フィールド1],8);
UPDATE テーブル2 SET テーブル2.フィールド2 = StrConv([テーブル2]![フィールド2],8);

とフィールドつづやってくしかないですかね?

もっと効率のいい方法があれば教えてください!
よろしくお願い致します。

Aベストアンサー

SET には複数の式をカンマで区切って記述できます。
なので
update テーブル1
set
テーブル1.フィールド1 = StrConv([テーブル1]![フィールド1],8),
テーブル1.フィールド2 = StrConv([テーブル1]![フィールド2],8),
テーブル1.フィールド3 = StrConv([テーブル1]![フィールド3],8)
;
です。
(結局、全フィールド記述ですね)

QAccess]2つのテーブルを比較してフィールドの一部が一致したデータを抽出

2つの名簿テーブルを比較してどちらのテーブルにも含まれている個人を抽出したいと考えております。

テーブル名とフィールドは以下のとおりです。

====================
テーブル名「名簿A」

氏名
電話番号
住所
メールアドレス
====================
テーブル名「名簿B」



電話番号
住所
メールアドレス
====================

たとえば、この2つの名簿をメールアドレスで一致したものを抽出する場合は選択クエリのデザインビューで「名簿A」のフィールドを読み込ませ、
メールアドレスフィールドの抽出条件として

Like [名簿B].[メールアドレス]

を入れれば抽出ができたのですが、メールアドレスは、名簿ごとに記入されていたりしなかったりするので、名前での一致を行いたいと思っています。

ここで問題なのが、名簿Aは「氏名」で入力されているのに対し、名簿Bでは「姓」と「名」が別フィールドになっております。

そこで自分なりにやってみたのが、選択クエリのデザインビューで「氏名」のフィールドの抽出条件として

Like (*[名簿B].[姓]*)

を設定するものでした。
これがうまくいけば最終的には

Like (*[名簿B].[姓]*) And Like (*[名簿B].[名]*)

という風にして、名簿Aの「氏名」フィールドに名簿Bの「姓」も「名」も入っているものを抽出できるかな?と考えたのですが、上記のように入力すると、自動的に

Like ("*[名簿B].[姓]*")

となってしまい、何も抽出されなくなってしまいました。

このような方法では希望する抽出は行えないのでしょうか?

お分かりのかた、よろしくお願いいたします。

2つの名簿テーブルを比較してどちらのテーブルにも含まれている個人を抽出したいと考えております。

テーブル名とフィールドは以下のとおりです。

====================
テーブル名「名簿A」

氏名
電話番号
住所
メールアドレス
====================
テーブル名「名簿B」



電話番号
住所
メールアドレス
====================

たとえば、この2つの名簿をメールアドレスで一致したものを抽出する場合は選択クエリのデザインビューで「名簿A」のフィールドを読み込ませ、
メール...続きを読む

Aベストアンサー

> 名簿Aの「氏名」欄には姓と名の間にスペースが入っているものがあり

[名簿B].[姓] & [名簿B].[名]を使った時のクエリで考えてみます。

クエリをSQLビューで表示した時、抽出条件のところは

[名簿A].[名前] Like [名簿B].[姓] & [名簿B].[名]
とか
[名簿A].[名前] = [名簿B].[姓] & [名簿B].[名]

になっていると思います。

[名簿A].[名前]の部分に細工して、Replace([名簿A].[名前]," ","")に書き換えます。
(Replace で空白を削除してあげます)

それをもとに
Replace([名簿A].[名前]," ","") = [名簿B].[姓] & [名簿B].[名]
としてみるとどうなりますか。


※バージョンによっては、クエリ内で Replace が使えないものがあったかと思います。
その時には、補足なりに記述してください。
(対処方法はあります)

Q別のテーブルから別のテーブルへデータを保存する方法

Access2002です。
二つのコンボボックス、大・小でそれぞれ絞り込みを行なうようにしています。
大で絞り込んだ結果が小に反映されるのですが、追加で新しい項目も登録させたいです。
その際に、次に絞り込みを行なうときに新規で小に追加された項目が、大を選んだ後にきちんと表示されるようにしたいのですが、その処理をどうすればいいのか分かりません。

それぞれ番号を振ってあるので、小に新規登録するときに、その時点で選択されている大の番号を自動で取得し、小のテーブルに入れられればと思っています。

大テーブル
・大項目コード(オートナンバー型)
・大項目(テキスト型)

小テーブル
・小項目コード(オートナンバー型)
・小項目(テキスト型)
・大項目コード(数値型:ここに大テーブルの「大項目コード」を入れたい)

テーブルは上記のようになっています。
絞り込みは下記のように、大・小ふたつ分記載してあります(名前以外は同じです)


Private Sub コンボ大_NotInList(NewData As String, Response As Integer)

Dim strmsg As String
strmsg = "登録されていない語句です。保存しますか?"

If 1 <> MsgBox(strmsg, 1) Then
Response = acDataErrContinue
Me.コンボ大.Undo
Else
DoCmd.SetWarnings False
DoCmd.OpenQuery "追加クエリ"
Response = acDataErrAdded
DoCmd.SetWarnings True

MsgBox "登録しました。"
End If

End Sub

追加クエリはフィールドに『式1: Forms!入力フォーム!コンボ.text』、レコードの追加には『大項目』としています。小も同様です。
現在は別のテキストボックスに大の『大項目コード』を表示させ、そこから小のテーブルに入れられないかと思ってます。テキストボックスに表示させるのは出来ました。
その値を、小に新規で項目を登録する際に、一緒に小テーブルに入れられればと思っていますが、実際にどうすればいいのか、、ネットや本で調べてみましたがさっぱり分かりません。
望む結果になれば方法は問わないので、お知恵を拝借できればと思います。
分かりづらい文章かもしれませんが、よろしくお願いします。

Access2002です。
二つのコンボボックス、大・小でそれぞれ絞り込みを行なうようにしています。
大で絞り込んだ結果が小に反映されるのですが、追加で新しい項目も登録させたいです。
その際に、次に絞り込みを行なうときに新規で小に追加された項目が、大を選んだ後にきちんと表示されるようにしたいのですが、その処理をどうすればいいのか分かりません。

それぞれ番号を振ってあるので、小に新規登録するときに、その時点で選択されている大の番号を自動で取得し、小のテーブルに入れられればと思ってい...続きを読む

Aベストアンサー

> 追加クエリはフィールドに『式1: Forms!入力フォーム!コンボ.text』、
> レコードの追加には『大項目』としています。小も同様です。

でしたら、『小テーブル』用の追加クエリに、もうひとつ列(フィールド)を追加すれば、
コードの方は特に触らなくても対応できるかと思います。


そのクエリをデザインビューで開いたら、以下のように「式2」の列を追加します:

   フィールド: 式1: (下記参照) 式2: (下記参照)
    テーブル:
    並べ替え:
レコードの追加: 小項目      大項目コード

・「式1:」の式部分:
  Forms!入力フォーム!コンボ小.Text
・「式2」の式部分:
  Forms!入力フォーム!大コード
  (大項目コードを表示させたテキストボックスの名前が「大コード」の場合)


・・・以上です。


要するに、

> 新規で項目を登録する際に、一緒に小テーブルに入れられればと思っています

という場合は、上記のように、必要なフィールド群を順次横に並べてやればOKだと
いうことです。

・・・質問の趣旨を誤解していたらすみません(汗)

> 追加クエリはフィールドに『式1: Forms!入力フォーム!コンボ.text』、
> レコードの追加には『大項目』としています。小も同様です。

でしたら、『小テーブル』用の追加クエリに、もうひとつ列(フィールド)を追加すれば、
コードの方は特に触らなくても対応できるかと思います。


そのクエリをデザインビューで開いたら、以下のように「式2」の列を追加します:

   フィールド: 式1: (下記参照) 式2: (下記参照)
    テーブル:
    並べ替え:
レコードの追加: 小項目     ...続きを読む

Q別のテーブルのフィールドを抽出項目にするには?

別のテーブルのフィールドを抽出項目にするには?

Access初心者です。
申し訳ありませんが、急ぎ回答いただきたく思います。
どうか宜しくお願いいたします。

お伺いしたい内容は、

データが多く、抽出条件も多いので、
別のテーブルのフィールドに入っている単語を使い、
抽出したい元データのレコードをあいまい検索して非表示にしたいです。

データの内容は下記になります。

---------------------------------------
元データ(テーブル1とテーブル2から結合したクエリ(名前は元データ)
フィールド1 フィールド2
ID-1     りんご
ID-2     バナナ
・       ・
・       ・
・       ・
ID-2000    チェリー
---------------------------------------
---------------------------------------

除外リスト(テーブル3。名前は除外リスト)
フィールド1
りんご
チェリー



---------------------------------------

元データのフィールド2に
Not Like "*りんご*" And Not Like "*チェリー*"
と記述すれば、フィールド2にりんご、チェリーを含むレコード以外のものが表示され、
欲しい情報が手に入るのですが、(上記例だとバナナのみ表示される)
実際にはりんご、チェリーなどあいまい検索し、非表示にしたいキーワードが100個あります。

なので、除外リストというテーブルをつくり、
そのフィールド内に書かれたキーワードを使い
Not Like "*りんご*" And Not Like "*チェリー*"
と同じような表示結果になるようにしたいのですが、
やり方が調べてもどうしてもわかりません。

どうか皆様のお力を貸してください。
宜しくお願いいたします。

別のテーブルのフィールドを抽出項目にするには?

Access初心者です。
申し訳ありませんが、急ぎ回答いただきたく思います。
どうか宜しくお願いいたします。

お伺いしたい内容は、

データが多く、抽出条件も多いので、
別のテーブルのフィールドに入っている単語を使い、
抽出したい元データのレコードをあいまい検索して非表示にしたいです。

データの内容は下記になります。

---------------------------------------
元データ(テーブル1とテーブル2から結合したクエリ(名前は元データ)
フィールド1 ...続きを読む

Aベストアンサー

以下でどうなるでしょうか。

元データのクエリの名前を「元データ」とします。
除外リストは、そのまま「除外リスト」名とします。

SELECT * FROM 元データ
WHERE NOT EXISTS (
SELECT 1 FROM 除外リスト
WHERE 元データ.フィールド2 LIKE "*" & 除外リスト.フィールド1 & "*"
)
;


曖昧で一致するもの、が無ければ…、と考えてみましたが。

(修理性能はわかりません)


人気Q&Aランキング

おすすめ情報