アプリ版:「スタンプのみでお礼する」機能のリリースについて

教えて下さい!
以前下記のように回答いただいたのですが、
これに空白の場合はそのままの値を持ってくるという式を付け加えたいのですが、どのようにしたらよいか教えてください。いろいろ試したのですが、エラーになってしまい。

以前のご回答です↓↓↓↓↓↓

instr関数は探した文字列が見つからない場合は0になるので、iif関数を使ってカッコの有無で処理を分岐します。
IIf(InStr(Replace(Replace([名前],"<","("),"【","("),"(")=0,[名前],Left([名前],InStr(Replace(Replace([名前],"<","("),"【","("),"(")-1)) 長い式になってしまいましたが私にはこれしか思いつかないのでガマンしてください。

A 回答 (2件)

あれ?


括弧については文字コード案が出てたので(私は文字コードは苦手で)、そちらで解決したと思ってたのですが・・・・
No.1さんと同じように関数案で正規表現のパターンをどうしようかと考えてはいましたが。

今の式なら
IIf(IsNull([名前]) Or InStr(Replace(Replace([名前],"<","("),"【","("),"(")=0,[名前],Left([名前],InStr(Replace(Replace([名前],"<","("),"【","("),"(")-1))
なが!
    • good
    • 0

なんか、いろんな括弧に対応するようにしようとすると、ダラダラ長くなりそうだから、以下のような関数作ってクエリから呼び出したらいかがしょうか。

 (実行環境ないので、試せないので動かなかったら申し訳ないのですが)
あと、元の住所がヌルの時はブランクを返すようにしてあります。

function getAddr(strAddr) as string
dim intPPos as integer
intPPos =0
if isnull(strAddr) = true then getAddr = ""
if instr(strAddr,"(") <> 0 then intPPos= instr(strAddr,"(")
if instr(strAddr,"【") <> 0 then intPPos= instr(strAddr,"【")
if instr(strAddr,"<") <> 0 then intPPos= instr(strAddr,"<")
’・・・
if intPPos = 0 then
getAddr= ""
else getAddr = left(strAddr,intPPos-1)
end if
end function
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!