重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

どなたかお教え下さい。
ACCESSのクエリを教えて下さい。

同じテーブル内で
(1)というフィールドから(テキスト型)
Like演算子で
下記の例を
抽出した上で

ab1cd

(2)というフィールドの(テキスト型)
AというものBに変換させるリプレイスの関数を
下記URLの参考例通りに書いたのですが、
結果が0となり
クエリが実行されません。

どなたかご教授お願い致します。


参考サイトの例
http://office.microsoft.com/ja-jp/access-help/HA …
指定パターンに一致する Like "Chi??"

名前の文字数が 5 文字であり、かつ最初の 3 文字が "Chi" である国/地域 (China や Chile など) のレコードを返します。

メモ 式では、? と _ は 1 文字を表します。ワイルドカード文字ともいいます。文字 _ は、文字 ? を使用する式やワイルドカード文字 * を使用する式で使用することはできません。ワイルドカード文字 _ は、ワイルドカード文字 % を含む式で使用できます。

A 回答 (6件)

>抽出条件 item の値が不特定の桁で左から4番目が 2 の全てのレコード


そうなのであれば、、、

UPDATE syouhin SET syouhin.item2 = Replace([syouhin].[item2],'特8','●')
WHERE mid([syouhin].[item], 4,1) = "2";

とかしたほうが楽ではないかな?

一般的なアドバイスとしては、更新クエリを作る前に選択クエリをつくり、
それで更新したいレコードを抽出できていることを確認してから、
更新クエリにするのが良いと思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。何とか
なりそうです。

この度は、本当にお礼の言いようがございません。

誠に有り難うございました。

お礼日時:2014/06/11 17:10

桁数が不特定で、Likeを使うなら、


4桁目が2のレコードが対象の場合、

UPDATE syouhin SET syouhin.item2 = Replace([syouhin].[item2],'特8','●')
WHERE [syouhin].[item] Like "????2*";

ですね。
    • good
    • 0
この回答へのお礼

有り難うございます。

自分の未熟さを痛感いたします。

お礼日時:2014/06/19 14:31

おっしゃっていることにブレがあるので、何をしたいのか明確でないです。


もう一度、何をしたいのか明確に提示してください。

例えば、

対象テーブル syouhin
抽出条件 item の値が10桁で5番目が 1 のレコード
更新 item2 に含まれる 特8 を ● に変換

というように。
上記の仕様なら前回の回答のSQLで問題なく更新されます。


ついでにデータ例と希望結果も提示してもらえると分かりやすいです。

item     item2
----------------------------------
abcd1abcde  あああ特8ああ
abcd1abc   い特8いいいい
abcd2abcde  うう特8うううううう

上記のデータで前回の更新クエリを実行すると、下記になります。

item     item2
----------------------------------
abcd1abcde  あああ●ああ
abcd1abc   い特8いいいい
abcd2abcde  うう特8うううううう

この回答への補足

申し訳ございません。
やりたいことしては


対象テーブル syouhin
抽出条件 item の値が不特定の桁で左から5番目が 1 の全てのレコード
更新 item2 に含まれる 特8 を ● に変換



item     item2
----------------------------------
abcd1abcde  あいう特8えお
abcd1abc   い特8おえあう
abcd2abcde  かき特8くけきこ

上記のデータで更新クエリを実行し下記にしたいです。

item     item2
----------------------------------
abcd1abcde  あいう●えお
abcd1abc   い●おえあう
abcd2abcde  かき●くけきこ


で、上記を応用して
上記の抽出条件を応用して

対象テーブル syouhin
抽出条件 item の値が不特定の桁で左から4番目が 2 の全てのレコード


更新 item2 に含まれる 特8 を ● に変換


item     item2
----------------------------------
abc1abcde  あいう特8えお
abc1abc   い特8おえあう
abc2abcde  かき特8くけきこ

上記のデータで更新クエリを実行し下記にしたいです。

item     item2
----------------------------------
abc1abcde  あいう特8えお
abc1abc   い特8おえあう
abc2abcde  かき●くけきこ


この抽出条件の
何番目の
英数字を
指定して
変換を繰り返していきたいのです。


何卒、ご教授下さいませ。

補足日時:2014/06/11 13:46
    • good
    • 0
この回答へのお礼

この度は、ありがとうございました。

お礼日時:2014/06/20 16:40

> 抽出したいのは


> syouhinのテーブルから
> itemのフィールドの10ケタの英数字の中から
> 5番目が1になるものを
> item2の特8を●に変換したいのです。


UPDATE syouhin SET syouhin.item2 = Replace([syouhin].[item2],'特8','●')
WHERE [syouhin].[item] Like "????1?????";

この回答への補足

試して、見たのですが、やはり
クエリが実行されません。

UPDATE syouhin SET syouhin.item2 = Replace([syouhin].[item2],'特8','●')
WHERE [syouhin].[item] Like "????1?????";

を利用して
左から5番目の数字が2だったら
特8をL
とか
したいのですが、

itemのフィールドが全て10ケタでないからなのでしょうか?

どなたか、ご教授下さいませ。

補足日時:2014/06/11 10:42
    • good
    • 0
この回答へのお礼

この度は、ありがとうございました。

お礼日時:2014/06/20 16:40

もし可能であれば、


(1)クエリのSQL(SQLビューにすると表示されます)のWHERE句(SELECT...WHERE...のWHEREの後の部分)
(2)具体的に抽出したいレコード
を記載していただけますでしょうか?

この回答への補足

UPDATE syouhin SET syouhin.item2 = Replace([syouhin].[item2],'特8','●')
WHERE (([syouhin].[item] Like (syouhin.item2)="????1????"));

抽出したいのは
syouhinのテーブルから
itemのフィールドの10ケタの英数字の中から
5番目が1になるものを
item2の特8を●に変換したいのです。

が、何度やっても件数
0で、うまくいきません
何卒、ご教授下さいませ。

補足日時:2014/06/10 20:54
    • good
    • 0
この回答へのお礼

この度は、ありがとうございました。

お礼日時:2014/06/20 16:40

>AというものBに変換させるリプレイスの関数を



推測ですが a と A を別の文字として認識してるだけでしょう。

A→Bでなくa→bとなるリプレイス関数にするか
vbTextCompareを指定すればいいのでは?
※クエリで使う場合は、vbTextCompareでなく1と入力してください。


Replace関数
http://office.microsoft.com/ja-jp/access-help/HA …
↑で 
vbBinaryCompareは大文字/小文字を区別します。
vbTextCompareは大文字/小文字を区別しません。

この回答への補足

済みません説明が
下手で
ここに
構文を書きますので
どこを直したらいいのか、何卒
ご教授下さいませ
UPDATE syouhin SET syouhin.item2 = Replace([syouhin].[item2],'特8','●')
WHERE (([syouhin].[item] Like (syouhin.item2)="????1????"));

抽出したいのは
syouhinのテーブルから
itemのフィールドの10ケタの英数字の中から
5番目が1になるものを
item2の特8を●に変換したいのです。

が、何度やっても件数
0で、うまくいきません
何卒、ご教授下さいませ。

補足日時:2014/06/10 20:56
    • good
    • 0
この回答へのお礼

この度は、ありがとうございました。

お礼日時:2014/06/20 16:40

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