ACCESSの質問です。

レコードの文字列のうち、特定の文字列以降を削除する場合には
どうすればいいでしょうか。

例)

DATAテーブル

フィールド1

ABC(X)DEF
GHIJ(X)KL
AB(X)DEF

特定の文字列は"(X)"

結果)

ABC
KL
DEF

回答の条件
  • 1人2回まで
  • 登録:2008/07/15 16:13:02
  • 終了:2008/07/15 16:45:06

回答(2件)

id:taknt No.1

きゃづみぃ回答回数13538ベストアンサー獲得回数11982008/07/15 16:34:09

ポイント35pt

http://office.microsoft.com/ja-jp/access/HA012288571041.aspx

InStr関数とLeft関数を使ったらいいでしょう。


Left([フィールド1],(InStr(1,[フィールド1],"(X)")-1))

id:rupopon

ありがとうございました。使ってみます。

2008/07/15 16:44:56
id:kn1967 No.2

kn1967回答回数2915ベストアンサー獲得回数3012008/07/15 16:39:02

ポイント35pt

まずは動作確認の意味でSELECTを使ってみましょう。

使う関数はINSTRとLEFTです。

ここでは(X)が含まれない場合も考慮してIIF関数も使っています。

SELECT IIF(INSTR(フィールド1,"(X)"),LEFT(フィールド1,INSTR(フィールド1,"(X)")-1),フィールド1)
FROM DATAテーブル;

確認が出来たらUPDATEですが念のためフィールド2を用意して、そちらに新しいデータを書き込むようにしてあります。

UPDATE DATAテーブル
SET フィールド2 = IIF(INSTR(フィールド1,"(X)"),LEFT(フィールド1,INSTR(フィールド1,"(X)")-1),フィールド1);

フィールド1を直接書き換えるのであれば下記のようになります。

UPDATE DATAテーブル
SET フィールド1 = LEFT(フィールド1,INSTR(フィールド1,"(X)")-1)
WHERE INSTR(フィールド1,"(X)") > 0;
id:rupopon

ありがとうございました。使ってみます。

2008/07/15 16:44:58

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません