• ベストアンサー

SUBSTRING 関数に渡した長さのパラメータが無効です。

nora1962の回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.3

以下のようなスクリプトでもチェックできるかな dim cn dim rst dim re set cn = createobject("ADODB.connection") set rst = createobject("ADODB.recordset") set re = createobject("VBScript.RegExp") re.pattern = "^\(\d+\)\d+-\d+$" cn.ConnectionString = "provider=sqloledb;data source=xxx;initial catalog=xxx;user id=xxx;password=xxx" cn.Open rst.Open "select telno from address", cn, 3 Do Until rst.EOF if re.test(rst.fields("telno")) then else WScript.Echo rst.fields("telno") end if rst.MoveNext Loop

Elldorado
質問者

お礼

どうもありがとうございます。 参考にさせていただきます。

関連するQ&A

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

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

  • 抽出する文字数が異なる場合

    Access2003 クエリを作成中です。 「アドレス」テーブルの「電話番号」フィールドの編集作業をしていますが、市外局番のみを取り出す、つまり、-(ハイフン)より、前を取り出したいです。 郵便番号の場合、3ケタ-4ケタの為、Mid関数を用いることができたのですが、電話番号の場合、それが出来ずに困っています。 03-1234-5678 090-1234-5678 0000-1234-5678 などがあり、郵便番号のように Mid(アドレス!郵便番号,1,3) AS 郵便3ケタ Mid関数を使って、○文字、抽出することができません。 電話番号は、テーブル「アドレス」/フィールド「電話番号」です。

  • 全国の市外局番の一覧が載っているサイトありませんか

    仕事で住所、電話などのデータをある形式に揃える必要があるのですが、ハイフンなしの電話番号をハイフン付に変換するのが大変です。例えば03****2222は03-****-2222となり、045***4444は045-***-4444となります。市外局番が2桁、3桁、4桁(たまに5桁の所も)と地区によってバラバラなので、計算式の利用にも限度があり、困っています。そこで質問ですが、 1.全国の市町村名と市外局番が一覧になっているサイトはありませんか。 2.エクセルで、ハイフンなしの電話番号に市外局番の箇所でハイフンを付けるには、どのようにすればいちばん早いでしょうか。ちなみに今はMID関数を使って、東京なら03だけを取り出して・・・というようにやっています。

  • Access2000 クエリーでの関数について

    Access2000 クエリーでの関数についての質問です。 例えば、 ○○-○○○○○や、△-△△△△ という文字列があった時に、ハイフンの前の文字だけを抽出したい時は、どのようにすればいいでしょうか?ハイフンの前の数字の桁数は、決まってませんが、最大でも5桁程度です。また、文字列は全て半角です。 大至急知恵を下さい!

  • エクセルで電話番号にハイフンを入れるには?

    はじめまして、表題の通りですが、なかなか難しくてうまく解決できませんので、ここで質問させていただきます。 電話番号に半角のハイフン(-)を入れて見やすくしたいと考えています。 電話番号には090などで始まる携帯の番号、大阪のように06で始まる番号、京都のように075で始まる番号、西宮市のように0798で始まる番号といろいろ入力されています。それぞれの市外局番の後にハイフンを入れて、残りの番号が8桁なら4桁+ハイフン+4桁、7桁なら3桁+4桁、6桁なら2桁+ハイフン+4桁のようにハイフンを入れていくにはどうしたらよいでしょうか? (例) 09012345678→090-1234-5678 0612345678→06-1234-5678 0751234567→075-123-4567 0798123456→0798-12-3456

  • エクセル関数:検索条件をあいまいにしたい。

    よろしくお願いします。 Aの表は、  月日    電話番号        通話料金 1月1日 010-333-3333   100 1月5日 020-999-9999   500 2月3日 010-333-3333   300 2月3日 3434-3434       200 ・・・・・・ という具合に、電話をした相手の番号と金額が「日付ごと」に 電話番号が「ハイフンつき」で入っていたり、 「市外局番なし」で入っているデータがあります。 一方、Bの表には、 短縮番号     電話番号        名前     合計金額 111   0103333333    おしえて花子      ? 112   0209999999    質問太郎         ? 113   0334343434    安心会社         ? というように、短縮番号別に 電話番号が「ハイフンなし」で入っている表があるとします。 Aの表から該当の電話番号を検索し、通話料金の合計をBの表の「?」部分に返したく、 SUMIF関数を使用したいと思ったのですが、 AとBの検索条件である「電話番号」がハイフンが入っているとか、市外局番が入っていないとか、 とにかく「完全一致していない」という理由で、うまくできません。 完全一致ではなくても(ハイフンや、市外局番には関係なくて)、検索条件に引っかかり、合計金額が出せるようにするには、どうしたらよいのでしょうか? たとえば、後ろ6ケタくらいの数字が一致していれば、該当番号になれるようにできれば、よいのですが・・・ よろしくお願いします。  

  • 電話番号の適正位置に「ー」を表示したい

    こんにちは。 システムの入替に伴い、顧客のデータを移行しようとしています。 その中で電話番号の項目があるのですが、現システムでは ハイフンを表示しない形式で登録されています。 新システムのDBではハイフン付で登録しなければならないのですが、 市外局番・市内局番の桁数が地域によって異なるため、 ハイフンで区切る適正位置がわからず困っています。 ネットから市外局番一覧を入手したのですが、ExcelのVlookupで 突合させるとニアリーイコールのものを引っ張ってしまい、 上手にセットすることができません。 どなたか良い方法や変換ソフトなどをご存知の方がいらっしゃったら教えてください。よろしくお願いします。

  • 5桁の電話番号

    5桁の電話番号ってありますか? TEL ○-○○○○ よくあるインターネットでの入力フォームをつくっております。 電話番号を入力する際に普通は、市外局番や携帯電話で 10桁か11桁で2箇所にハイフンを入れたとしても 普通、10桁から13桁になると思います。 仮に市外局番を抜かしても最低6桁以上になると思います。 そこで6桁未満14桁以上の電話番号をエラーにしたいですが ハイフンを抜かして5桁の電話番号ってありますか?。 また、ハイフンやカッコを使っても 14桁以上まで入力する人って普通いますか?。

  • エクセルで電話番号にハイフンを入れるには?

    教えて下さい。 エクセルで電話番号にハイフンを入れたいと思ってます。 市外局番や間の桁数が違うのですが、いい方法を教えて下さい。 例) 092***1111 → 092-***-1111 03****3222 → 03-****-3222 0999**0000 → 0999-**-0000 01234*2222 → 01234-*-2222 という感じです。 いい方法があれば教えて下さい。

  • Accessの電話番号フィールド

    Access2000以降について質問です。 顧客記録の電話番号フィールドについてお尋ねします。 異なるデータソース(テキスト形式)から各々に電話番号フィールドを含む2つのテーブルを作成したのですが、電話番号のフィールドがテーブル1では「ハイフンつき」の電話番号、テーブル2のほうでは「ハイフンなし」の電話番号になっています。また、いずれのフィールドもデータ型は「テキスト型」になっています。 やりたいことはテーブル1の電話番号にはないテーブル2の電話番号を含むレコードを不一致クエリを用いて抽出したいのですが、ハイフンがあるために全て不一致になってしまいます。 ハイフンを入れるのは地方の電話番号が多いため市外局番が3桁や4桁などで不揃いのためLEFT、RIGHT関数を用いて入れるのは不可能です。 そこでテーブル1のハイフンつき電話番号フィールドからハイフンを取り除きたいのですが、なにか方法はありませんか?VBAは分からないのでそれ以外でやる方法があれば教えて下さい。お願いします。