• 締切済み

[MS ACCESS]クエリの抽出条件で

宜しくお願いします。 たとえば、Aというフィールドに入っている内容が aaaaaa?feohknkjew jibs?1193jdf などとある場合、?以降の文字を全て削除するには、 何か方法がありますか? 教えてください。

みんなの回答

  • sanbit
  • ベストアンサー率32% (16/50)
回答No.4

更新クエリでできます。 クエリのSQL次の通り UPDATE テーブル名 SET テーブル名.フィールド名 = Left([フィールド名],InStr([フィールド名],"?")-1) WHERE (((InStr([フィールド名],"?"))<>0)); としてください。 これでフィールド名のデータの「?」の位置を調べて「0」以外のデータについて 「?」より前の文字に更新してくれます。 念のためテーブルのコピーして下さい。テーブルを更新します。 お試しください。

  • arare2005
  • ベストアンサー率31% (63/199)
回答No.3

(補足) あくまでも表示する場合の方法です。 実際に更新するのであれば、1バイト目に「?」が有る場合に「Null」となりますのでデータベースが「Null」不可の場合は考慮しなければいけません。 アクセスですので、クエリ画面で該当データを抽出した後、そのデータのみ変更する事もできます。 その場合は、IIf(条件、真、偽)の条件は不要になります。 実データを更新される場合は、必ずバックアップしてからテストし、そのデータを実データへ戻す様にして下さい。 ※抽出条件は Like '*?*' か '%?%' ですが「?」が特殊文字ですので[]か何かでくくらないといけないかもしれません。ヘルプも参考にして下さいネ

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

更新クエリなら Aフィールドの更新欄に aaaaaa 抽出条件欄に Like "aaaaaa?feohknkjew" で「!(実行)」ですかね。 ?をワイルドカードとして使わない場合は抽出条件を Like "aaaaaa[?]feohknkjew" にしてください。

  • arare2005
  • ベストアンサー率31% (63/199)
回答No.1

IIf(InStr(1,A_Field,"?")>0, Left(A_Field,InStr(1,A_Field,"?")), A_Field) こんな感じでしょうかネ!