人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

例)

DATAテーブル

フィールド1

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

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

結果)

ABC
KL
DEF


●質問者: rupopon
●カテゴリ:コンピュータ 学習・教育
✍キーワード:ABC access def フィールド レコード
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●35ポイント

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

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


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

◎質問者からの返答

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


2 ● kn1967
●35ポイント

まずは動作確認の意味で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;
◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ