1

まず、Access 2010 を使用しています。

私がする必要があるのは、特定の文字列ではないフィールド内のすべてを引き出すことです。たとえば、これがあるとします:

00123457* A8V *

太字で示されている最後の 3 文字は単なる例です。その部分は、数字/文字の任意の組み合わせで、長さは 2 ~ 4 文字です。00123457 の部分は常に同じです。したがって、上記の例のクエリで返す必要があるのは「A8V」です。

これを行う方法について漠然とした考えがあります。これには、(フィールドの長さ - その文字列の最後の位置) を使用して Right 関数を使用することが含まれます。だから私が持っていたのは

SELECT Right(Facility.ID, (Len([ID) - InstrRev([ID], "00123457")))
FROM Facility;

論理的には機能しますが、Access 2010 は、Right 関数を間違って使用していると不平を言います。ここで誰かがこれを理解するのを手伝ってくれますか?

どうもありがとう!

4

3 に答える 3

2

置換機能を使用しないのはなぜですか?

REPLACE(Facility.ID, "00123457", "")
于 2013-07-19T20:28:56.833 に答える
1

ここに閉じ角括弧がありませんLen([ID)

でこの「00123457」を逆にする必要もありますが、InStrRev()必要はありません。InStrRev()InStr()

于 2013-07-19T21:03:23.087 に答える