1615161322 アクセスに詳しい方教えてください。"短いテキスト型" のフィールドの抽出条件

で写真のテーブルの「タイトル」列の中で「家計簿からみたニッポン(1993)」のように
タイトルのなかに(○○○○)などの4桁の数字がある物だけクエリに抽出するときに
「家計簿からみたニッポン」と(○○○○)を除いた部分だけを抽出できる式を教えてください。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2021/03/10 01:54:33
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:ken3memo No.1

回答回数317ベストアンサー獲得回数115

ポイント100pt

Like "*(####)*" でカッコと数字4桁が取れるので、

Instrで ( を探して、Mid, Left 関数で左側、右側のデータを取得

https://youtu.be/llqoDUKvl8k?t=200

↑昔自分が使っていたデータでテストしてみました。

下記のSQLでテーブル名を勝手にM_ISBNとしてますが、

[タイトル]フィールドは同じ名前だと思うので、

ここを自分のテーブル名に変えてテストしてみてください。


SELECT InStr([タイトル],"(") AS カッコの位置,

Left([タイトル],[カッコの位置]-1) AS 左側,

Mid([タイトル],[カッコの位置]+6,9999) AS 右側,

[左側] & [右側] AS タイトル2,

Mid([タイトル],[カッコの位置]+1,4) AS 年度,

M_ISBN.*

FROM M_ISBN

WHERE (((M_ISBN.[タイトル]) Like "*(####)*"));


↑、冗長なSQL文なので、もっとシンプルに書けると思いますが、

たたき台として参考となれば。

※半角(ではなくて全角()ですか?そのときは

InStr([タイトル],"(") AS カッコの位置

と全角にしてください。

id:ken3memo

ごめんなさい。タイトルが

公認会計士試験(上巻)(2021)

基本情報技術者(午後)アルゴリズム(2020)

など、単純に(を探すと、(上巻)や(午後)の(を拾ってしまい、

抜き出し処理でエラーになってしまいます。

テスト不足の回答ですみませんでした。

(動画のコメント欄でテスト不足を指摘・教えていただきました)

まだまだ、SQL文の細工が足りなかったり、

数値4桁を手抜きをしないでキチント探さないとダメみたいですね。

2021/03/09 06:31:51
id:seconduser2008

ありがとうございます。また正確な回答あればおしらせください

2021/03/09 18:13:49

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

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

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

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

回答リクエストを送信したユーザーはいません