- 締切済み
[MS ACCESS]クエリの抽出条件で
宜しくお願いします。 たとえば、Aというフィールドに入っている内容が aaaaaa?feohknkjew jibs?1193jdf などとある場合、?以降の文字を全て削除するには、 何か方法がありますか? 教えてください。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- sanbit
- ベストアンサー率32% (16/50)
更新クエリでできます。 クエリのSQL次の通り UPDATE テーブル名 SET テーブル名.フィールド名 = Left([フィールド名],InStr([フィールド名],"?")-1) WHERE (((InStr([フィールド名],"?"))<>0)); としてください。 これでフィールド名のデータの「?」の位置を調べて「0」以外のデータについて 「?」より前の文字に更新してくれます。 念のためテーブルのコピーして下さい。テーブルを更新します。 お試しください。
- arare2005
- ベストアンサー率31% (63/199)
(補足) あくまでも表示する場合の方法です。 実際に更新するのであれば、1バイト目に「?」が有る場合に「Null」となりますのでデータベースが「Null」不可の場合は考慮しなければいけません。 アクセスですので、クエリ画面で該当データを抽出した後、そのデータのみ変更する事もできます。 その場合は、IIf(条件、真、偽)の条件は不要になります。 実データを更新される場合は、必ずバックアップしてからテストし、そのデータを実データへ戻す様にして下さい。 ※抽出条件は Like '*?*' か '%?%' ですが「?」が特殊文字ですので[]か何かでくくらないといけないかもしれません。ヘルプも参考にして下さいネ
- mshr1962
- ベストアンサー率39% (7417/18945)
更新クエリなら Aフィールドの更新欄に aaaaaa 抽出条件欄に Like "aaaaaa?feohknkjew" で「!(実行)」ですかね。 ?をワイルドカードとして使わない場合は抽出条件を Like "aaaaaa[?]feohknkjew" にしてください。
- arare2005
- ベストアンサー率31% (63/199)
IIf(InStr(1,A_Field,"?")>0, Left(A_Field,InStr(1,A_Field,"?")), A_Field) こんな感じでしょうかネ!