
お世話になります。
Microsoft Accessについて質問です。
Microsoft365を使用しています。
クエリで抽出する際、フィールドAに含まれる文字によって条件分岐し
文字列の一部をフィールドBに抽出したいと考えています。
条件となる文字列は英数混在です。
例)
※条件1:文字列[cde]が含まれている場合、右から3文字抽出
※条件2:文字列[ijk]が含まれている場合、右から5文字抽出
※条件3:文字列[qr7]が含まれている場合、右から6文字抽出
・
・
・
[フィールドA] [フィールドB]
abcdefg123 123
efghijk456 jk456
lmnopqr789 pqr789
・
・
・
様々検索し試してみましたが、思うような結果が出ません。
Accessに触れて日が浅いため、もしかすると的外れな手法なのかもしれません。
そもそもExcelでやれという話かもしれませんが、現在使用しているデータベース上で作業したく…
「同一クエリ内では不可であるが、別クエリを使用すれば可能」などあればそちらでも構いませんので、このような抽出をする方法があればご教示いただけますでしょうか。
以上、よろしくお願いいたします。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
No.4です。
https://officek.net/access/a-query/aq-make/aqm-a …
フィールド名と演算フィールドの名称がダブっている場合のようですので、式を見直ししてみて下さい。
No.5
- 回答日時:
#2さんが気にされてますけど条件の数が少なければ
フィールドB:式
式には
Switch(InStr([フィールドA],"cde")>0,Right([フィールドA],3),InStr([フィールドA],"ijk")>0,Right([フィールドA],5),InStr([フィールドA],"qr7")>0,Right([フィールドA],6))
としてみるとか・・・。
上記でヒットしない場合はNullが得られますが、
複数の条件でヒットした場合、
例 qr7ijk654321の(qr7、ijk)などについては
考えていません。
ご参考まで。
No.4
- 回答日時:
No.2です。
条件の方は
・テーブル名:bbb
・フィールド名1:fa
・フィールド名2:fb
データの方は
・テーブル名:aaa
・フィールド名1:f1
・フィールド名2:f2
SQLビューで見ると
SELECT aaa.f1, Max(IIf(([f1] Like '*' & [fa] & '*'),right([f1],[fb]),"")) AS f2
FROM aaa, bbb
GROUP BY aaa.f1;
該当しないレコードの扱いがなかったので "" にしました。
![「[Microsoft Access]クエ」の回答画像4](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/e/542539658_614fc3512c1db/M.png)
No.3
- 回答日時:
>>クエリで抽出する際、フィールドAに含まれる文字によって条件分岐し
文字列の一部をフィールドBに抽出したいと考えています。
なかなかAccessだけでは、うまく処理できないパターンだと思います。
通常、「Access VBAを使って ADOによるレコード操作」でコーディングすることになると思います。
No.2
- 回答日時:
ほぼ未経験者ですけど。
条件数がどれ程あるのかわかりませんが多いのなら、
・条件
・文字数
を別のテーブルにしてそちらを参照し既出の方法で『右から何文字』と抽出できそうな気がします。
未検証ですけどね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessクエリで年月フィールドを年のみで抽出する方法について 2 2022/08/29 18:10
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) Indirect関数について、Formulatextで抽出した数式を参照したい。 1 2022/12/15 11:16
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Access(アクセス) accessの日付フィールドから前年度だけを取り出したい 3 2022/04/13 23:13
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Excel(エクセル) Excelの数式についての質問 1 2022/10/31 15:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでグループ化した結果フ...
-
Access2000 2番目に大きい数値...
-
アクセスで前年対比を出す方法...
-
Accessのクエリで、Left関数を...
-
別のテーブルのフィールドを抽...
-
Accessの入力について
-
ファイルメーカーで名前のよみ...
-
ファイルメーカーで住所内の市...
-
NULL値を含む場合のフィルタ
-
ACCESS97でエラーメッ...
-
フォトショップのカラーフィー...
-
Accessのリレーションシップ等
-
[Access]クエリの抽出条件について
-
ACCESSのフィールドに記述する...
-
FileMakerでアットマーク入り文...
-
ACCESS クエリで重複データを最...
-
テーブルに主キーを作らないデ...
-
ACCESS クエリで、グループ化...
-
アクセスでテーブルの変更内容...
-
accessで、「集計のオプション...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのクエリで、Left関数を...
-
別のテーブルのフィールドを抽...
-
Accessでグループ化した結果フ...
-
アクセスで前年対比を出す方法...
-
Access2000 2番目に大きい数値...
-
Accessでフォームへのフィール...
-
access で「指定したフィール...
-
【access】テキストから日付へ...
-
NULL値を含む場合のフィルタ
-
宛名作成(Word)の郵便番号が...
-
ファイルメーカーで住所内の市...
-
LotusNotesで全角の空白を半角...
-
[Microsoft Access]クエリ作成...
-
Access・エラー
-
Access2003でフィールドのデー...
-
ブリーフケースとAccess
-
[Access]クエリの抽出条件について
-
ファイルメーカーのフィールド...
-
ファイルメーカーで名前のよみ...
-
ACCESSのフィールドに記述する...
おすすめ情報
皆さま有難うございます。
こんなに早く沢山のアドバイスを頂けたことに驚いています。
現在、皆さまに頂いたご提案を試している最中です。
何名かの方に「条件の数」についてご指摘頂いておりますが、
条件数はかなり多く、数十件有りますので、No4様の「別途条件テーブルを作成する方法」がフィットしているかもしれません。(現在試行中です)
もし、これ以外にもよい方法が存在すればご教示頂けますと有難く存じます。
ちなみに、希望している動作をExcel上で試した所、細かな条件分岐なため必然的に式の量が増え、ファイルがクラッシュしてしまいましたので、やはりAccess上での作業を希望しております。
以上、皆さま引き続きアドバイスを頂けますと幸いです。
ご回答頂き有難うございます。
SQL文を自環境に合わせ試した所「aaaから循環参照が発生しています」のエラーダイアログが表示されました。
考えられる原因またはエラーを無視する方法などあればご教示頂けますでしょうか。
質問時例文を基に、自環境に合わせ下記のように代入し使用しました。
条件テーブル
・テーブル名:bbb
・フィールド名1:fa(条件:[cde],[ijk],[qr7]…を入力)
・フィールド名2:fb(条件:faに対応する抽出桁数を入力)
データテーブル
・テーブル名:aaa
・フィールド名1:f1(例文[フィールドA]:文字列を入力)
・フィールド名2:f2(例文[フィールドB]:抽出後データ表示用)
当て嵌め方に誤りあればご指摘ください。
以上、お願い致します。