• ベストアンサー

市外局番だけを取り出す関数のつくりかた

noname#79209の回答

noname#79209
noname#79209
回答No.2

ゴメンナサイ。 Instr関数は、最初に検索スタート位置を入れなくてはなりません。 なので =Left([TEL],Instr(1,[TEL],"-")-1) と、しないとダメですね。 [TEL]に何も入っていない場合を考慮するなら、 =IIf(Nz([テキスト0],"")<>"",Left([テキスト0],InStr(1,[テキスト0],"-")-1),"") Instr関数のヘルプでは、第一引数は省略可能と書かれているのに、 Instr([TEL],"-") と第一引数を省略すると、エラーになってしまいます。 Accessだけなのかもしれませんが...

関連するQ&A

  • ACCESS2002で市内局番だけを抜き出す関数

    ACCESS2002初心者です。 ACCESSのフォーム上で市外局番から入力する『電話番号』というテキストボックスがあります。 この電話番号を「市外局番」・「市内局番」・「局番」それぞれを切り取りレポートに印字されるように、 コントロールソースに書く関数を教えていただきたいです。 入力型は【000-000-0000】または【00-0000-0000】【0-00000-0000】 といったように市外局番、市内局番ともに文字数が変わります。 市外局番は =Left([電話番号],Instr(1,[電話番号],"-")-1) このクエリで表示されました。 局番は必ず下4桁なのでRight関数で表示されました。 問題は市内局番です。 =Mid([電話番号],InStr([電話番号],"-")+1) このクエリだと市内局番から下は全て表示されてしまいます。 どうしたら良いでしょうか? ご回答のほど、どうかよろしくお願いいたします。

  • 市外局番について

    ナンバーディスプレイ表示で 頭に 8164 と表示されたTELがかかってきました この市外局番?ってどこでしょうか何か怪しい番号のような気がするのですが

  • テキストボックスの内容でチェックボックスの既定値

    下記質問の続きです。 http://okwave.jp/qa/q8186736.html Accessで、 チェックボックスにチェックを入れることで テキストボックスに文字を表示させています。 そのフォームをいったん閉じると、 テキストボックスには 前回チェックボックスで入力した文字が反映されているのですが チェックボックスのチェックがすべて外れてしまっています。 フォームを開いたとき、 テキストボックスの内容によって、 配置したチェックボックスにチェックを入れたいです。 テキストボックスに 「A C」 と入っていたら ■A □B ■C □D □E としたいです。 (開いたあとは、また別の所にチェックを入れたり外したりします) チェックボックスのプロパティ「既定値」のところに IF([テキストボックス] like "*"&"A"&"*",ture,false) などとしてみたのですがうまういきませんでした。 ご教授お願いいたします!

  • Replace関数

    更新クエリにて、品名置換のReplace関数使用で、サブフォームからボタン操作で更新クエリを実行したら以下の事が出来ます。 Replace([品名],"りんご","りんご青森") 品名 りんご を りんご青森 に置換 Replace([品名],"青森","") 品名 の 文字列から 青森 を無くす置換 これをベースに、サブフォームに、テキストボックス1 テキストボックス2 を配置して テキストボックス1 → りんご を テキストボックス2 → りんご青森 に置換 サブフォームを表示しているフォーム1から参照 Replace([品名],[Forms]![フォーム1]![テキスト1],[Forms]![フォーム1]![テキスト2]) サブフォームから参照 Replace([品名],[Forms]![フォーム1]![履歴].[Form]![テキスト1],[Forms]![フォーム1]![履歴].[Form]![テキスト2]) 上記のフォームに配置したテキストボックスから、任意の置換情報を入力して置換する流れを作っているのですが、いずれのフォームからもテキストボックスの内容を認識出来ない様です。 ご教授頂ければ幸いです。 以上、宜しくお願い致します。

  • Access2003 タブコントロールについて

    フォームの詳細にタブコントロールを配置して、 その中にサブフォームを入れています。 そのサブフォームにあるテキストボックスの文字を レポートのテキストボックスに表示させたいです。 ただのフォームなら =Forms!フォーム名!テキストボックス名 でレポートに表示できますがタブコントロールがある場合は レポートのテキストボックスのコントロールソースに どういうふうに記述すればよいのでしょうか? よろしくおねがいします。

  • ExcelVBA:同じ文字の数を調べるプログラム

    Excelのプログラムで、テキストボックスに例えば「あかさいおあ」という文字があったとき「あ」の文字の数を調べたいとき、Len、Mid、InStrで一文字ずつ調べる方法以外で簡単に作れるプログラムはあるでしょうか? 回答よろしくお願いします。

  • エクセルVBAのテキストボックス改行について

    質問させて頂きます。 今VBAを使っているのですが TextBox内の改行がうまくいきません。 フォーム上にテキストボックスを置いて5~6行表示できる大きさにして、 (テキストボックス内に書いたものを保存ボタンでエクセル内の指定部分に反映させるコードを書き) それをマクロから開いて文字を入力している時に エンター押せば改行できると思っていたのですが出来ません。 CtrlやAlt押しながらもダメでした。 テキストボックスのプロパティ内に行を指定できる何かがあるのでしょうか? 色々いじりすぎて元に戻せなくなりつつあったので 質問させて頂きました。 ご存じの方おられましたら是非教えて下さい。 よろしくお願いします。

  • Accessで電話番号の市外局番だけを事前に入力しておくには

    Access初心者です。 住所録を作成しているのですが、 とあるテーブルとフォームの電話番号は、 すべて市外局番が一緒なので、 事前に市外局番だけ入力しておきたいのですが、 どうすればいいのでしょうか? というのも、定型入力だと、 0と9が入ってしまうと、 事前に入力しておきたい数字だと認識されないみたいで、 その部分が空白になってしまうのです。 それではと、その0と9をダブルクォーテーションで囲もうとおもったのですが、 上書きされてしまうみたいでうまくできません。 何か他に方法はないでしょうか? よろしくお願いいたします。 使用しているバージョンは、Access2002です。

  • テキストボックス 文字配置の上下の中央にしたい場合

    アクセスのフォームのテキストボックスの文字配置は 左右は中央というプロパティがあるので、真ん中に表示できますが 上下の中央にしたい場合は、はどうやって設定するのでしょうか? 上余白を手作業で調整するしかないのでしょうか?

  • 磁気カードの入力

    access2000にてフォームを作成してそのテキストボックスにて磁気カードを入力し、別のテキストボックス(2)にカードのデータの16桁目から7文字のみをテキストボックス(2)に表示入力する方法があったら教えてください。excel ではmid()関数のようなものです