で写真のテーブルの「タイトル」列の中で「家計簿からみたニッポン(1993)」のように
タイトルのなかに(○○○○)などの4桁の数字がある物だけクエリに抽出するときに
「家計簿からみたニッポン」と(○○○○)を除いた部分だけを抽出できる式を教えてください。
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 カッコの位置
と全角にしてください。
ごめんなさい。タイトルが
公認会計士試験(上巻)(2021)
や
基本情報技術者(午後)アルゴリズム(2020)
など、単純に(を探すと、(上巻)や(午後)の(を拾ってしまい、
抜き出し処理でエラーになってしまいます。
テスト不足の回答ですみませんでした。
(動画のコメント欄でテスト不足を指摘・教えていただきました)
まだまだ、SQL文の細工が足りなかったり、
数値4桁を手抜きをしないでキチント探さないとダメみたいですね。
ありがとうございます。また正確な回答あればおしらせください