0

私は Instr を使用してテキスト文字列から数値データを選択しようとしている Access の初心者です。

 Instr ( [start], string_being_searched, string2, [compare] )
      [start] defaults to 1
      string_being_searched is [Source Key]
      string2 is a number, decimal and number between 0.0 and 9.9
      [compare] is optional and I do not think it applies here

私の問題はstring2にあり、使用するとすべての出現に対して0が返されます

 Expr1: InStr([Source Key],'#.#') or, with double quotes 
 Expr1: InStr([Source Key],"#.#")

1.4 や 3.2 などの値、または QJX などのテキスト値 (数値ではない) を指定すると、指定された値が返されますが、その間に小数点がある 2 つの数値を選択する必要があります。

私は本当に立ち往生しているので、助けてください。

ありがとう

4

1 に答える 1

1

何が起こるか、文字列の構造によっては、おそらく VBA が必要になるでしょう。

あなたは言うことができます:

If aString Like "*[0-9].[0-9]*"

Instr(aString,".")

ただし、InStr ではワイルドカードを使用できません。

Val(aString)テキストが数字の後にある場合は、うまくいく可能性があります。

aString="12.3 lbs"
Val(aString) '' 12.3 

または

Mid(aString,Instr(aString,".")-1,3)

それ以外の場合は、関数内で文字列を 1 文字ずつ分割またはループすることを検討する必要があります。

于 2013-03-20T20:08:46.010 に答える