| INSTRB関数で文字列を検索し最初に見つかった文字位置のバイト数を返す | ||||
INSTR関数は文字位置を返しますが、INSTRB関数は文字位置のバイト数を返します。 下のサンプルソフトでも分かりますが、INSTR関数は半角・全角文字を関係なく検索していますが、 INSTRB関数は区別しています。 SQL = " SELECT INSTRB(フィールド名,検索文字列) FROM テーブル名 " 又は、 SQL = " SELECT INSTRB(フィールド名,検索文字列) AS 名前 FROM テーブル名 " Set rs = CurrentDb.OpenRecordset(SQL) 検索文字列が見つかった場合は、その文字位置のバイト数を返しますが見つからない場合は0が返ります。
サンプルソフト [実行時の画面] 「文字列を検索し最初に見つかった文字位置のバイト数を返すINSTRB関数 」ボタンをクリックすると、 ニュースフィールドから「ン」の文字を探します。 ■実行画面 最初の数値がINSTR関数で、次の関数がINSTRB関数です。 半角カナの「ミラン」ではINSTRB関数で0になっています。 ガソリン攻防 山口に大物続々 文字位置:4 : 7 ロナウジーニョとミラン合意 文字位置:11 : 0 物価高 東海のモーニング危機 文字位置:11 : 21 ![]() [ニュースデータベース テーブル] データID ニュース 10 ガソリン攻防 山口に大物続々 11 ロナウジーニョとミラン合意 13 物価高 東海のモーニング危機 ![]() [コード] Option Compare Database Private Sub コマンド8_Click() Dim SQL As String Dim rs As Recordset SQL = "SELECT ニュース,INSTR(ニュース,'ン'),INSTRB(ニュース,'ン') FROM ニュースデータベース" Set rs = CurrentDb.OpenRecordset(SQL) Do Until rs.EOF Me!テキスト1 = Me!テキスト1 & rs(0) & " 文字位置:" & rs(1) & " : " & rs(2) & vbCrLf rs.MoveNext Loop Set rs = Nothing End Sub
ダウンロード |
||||
Copyright(C) 2007-2008 FeedSoft