AccessのVBAでSQLのLEFTB関数を使い、文字列の左端から指定したバイト数分の文字列を返す|フォーム実行例

文字列の左端から指定したバイト数分の文字列を返すLEFTB関数

SQL = " SELECT LEFTB(フィールド名,バイト数) FROM テーブル名 "
又は、
SQL = " SELECT LEFTB(フィールド名,バイト数) AS 名前 FROM テーブル名 "
Set rs = CurrentDb.OpenRecordset(SQL)

バイト数を2にした場合、
「2007年の反省会」の場合、「2」に,
「野菜が焼けた」の場合、「野」になります。

Access2002で実行した場合、半角1文字も2バイトになりました。
全角も半角も同じ使用バイト数になっているようです。



BackHome BackSQL Tips

サンプルソフト
[実行時の画面]
「文字列の左端から指定したバイト数分の文字列を返すLEFTB関数」ボタンをクリックすると、
ニュースフィールドの先頭から2バイトを取り出し表示します。

■実行画面
・新旧天才子役が「おしん」共演 左から2バイト:新
・656万円、国の1人当たりの借金 左から2バイト:6
・avexが日本最大の株主総会 左から2バイト:a
バイトデータ取り出しフォーム

[サンプルデータ テーブル]
データID   ニュース
10  新旧天才子役が「おしん」共演
11  656万円、国の1人当たりの借金
13  avexが日本最大の株主総会
ニュースデータ

[コード]
Option Compare Database

Private Sub コマンド8_Click()
    Dim SQL As String
    Dim rs As Recordset
    SQL = "SELECT ニュース,LEFTB(ニュース,2) FROM サンプルデータ"
    Set rs = CurrentDb.OpenRecordset(SQL)
    Do Until rs.EOF
        Me!テキスト1 = Me!テキスト1 & rs(0) & "  左から2文字:" & rs(1) & vbCrLf
        rs.MoveNext
    Loop
    Set rs = Nothing
End Sub

サンプルソフトのダウンロード

BackHome BackSQL Tips

Copyright(C) FeedSoft