実際のデータベースを変更できないと仮定します。 。 。例えばIIF文にネスト
私は考えることができる唯一のこと(と、私はこの1つ上の頭脳によってwrackedが、申し訳ありませんメイト)は、INSTRに繰り返し呼び出しを使用することです、 inStrRev
SELECT IIf(InStr([FileName],""\"")>0,Mid$([Filename],InStrRev([Filename],""\"")+1),[Filename]) FROM Table1
にこの呼び出しを置き換えるためにあなたがcompeltely非常識
SELECT IIf(InStr([FileName],""\"")>0,Mid$([Filename],iif(InStr(1, [FileName], ""\"") > 0, iif(InStr(2, [FileName], ""\"") > 0, iif(InStr(3, [FileName], ""\"") > 0, iif(InStr(4, [FileName], ""\"") > 0, iif(InStr(5, [FileName], ""\"") > 0, iif(InStr(6, [FileName], ""\"") > 0, iif(InStr(7, [FileName], ""\"") > 0, iif(InStr(8, [FileName], ""\"") > 0, iif(InStr(9, [FileName], ""\"") > 0, 1, InStr(9, [FileName], ""\"")), InStr(8, [FileName], ""\"")), InStr(7, [FileName], ""\"")), InStr(6, [FileName], ""\"")), InStr(5, [FileName], ""\"")), InStr(4, [FileName], ""\"")), InStr(3, [FileName], ""\"")), InStr(2, [FileName], ""\"")), InStr(1, [FileName], ""\""))),[Filename]) from table1
を持っていると思いますこれは10かそこらのサブフォルダ深いthatsのパスのために動作します。 10個のサブフォルダが少なすぎると思ったら、私はあなたが必要とする深さまでステートメントを生成するために少しのvbaを持っています。
これは卑猥ですが、
笑。うん、卑猥な言葉です。私はあなたに1+以上を与えることができれば、私はそれを書いて憲法を持っているだけのためです!私はそれを解決策として考えましたが、それはちょうどナンセンスです。それはサービスパックのリリースのコード変更として捨てられてしまったので、この種のことをする必要はありません。おいしい仕事。 – Stimul8d
ありがとうございました!私は、上記のような忌み嫌いが唯一の解決策であるか、何かの修正が必要な場合に役職にいました。私はそれらのネストされたIIf'sが決して日の光を見ないことを嬉しく思います。運が良ければ –
@Binary Worrier:私の最初の直感は、入れ子になったIIf()のセットを書いて、それらにInStrRev()を代入することでした。しかし、私は非常に醜いと限られているという考えを却下した。 +1あなたの部分の完全な努力のために。 :D – Tomalak