AccessのVBAでSQLのCLNG関数を使い文字列を長整数型 (Long)に変換する|フォーム実行例

CLNGで文字列を長整数型 (Integer)に変換することができます。

SQL = " SELECT CLNG(フィールド名) FROM テーブル名 "
又は、
SQL = " SELECT CLNG(フィールド名) AS 名前 FROM テーブル名 "
Set rs = CurrentDb.OpenRecordset(SQL)

CLNG で文字列を長整数型 (Integer)に変換することができます。
長整数型は -2,147,483,648 ~ 2,147,483,647になります。
小数部分は丸められます。
文字列が数値として扱えない場合、「抽出条件でデータ型が一致しません」のエラーが発生します。
文字列が長整数型を超える場合、「オーバーフロー」のエラーが発生します。

例: SQL = " SELECT CLNG(地域コード) FROM 車両保有統計 "
車両保有統計テーブルの地域コードを長整数型として取得します。



BackHome BackSQL Tips

サンプルソフト
[実行時の画面]
「文字列を長整数に変換 CLNG関数」ボタンをクリックすると、
元の文字列と、正しく数値に変換されていることを確認する為、10倍し表示します。

■実行画面
変換結果

[サンプルデータ テーブル]
データID    文字
10   1
11   2
13    386.5678
16  15
17 -20
18 100
サンプルテーブル

[コード]
Option Compare Database

Private Sub コマンド8_Click()
    Dim SQL As String
    Dim rs As Recordset
    Me!テキスト1 = "文字列" & vbCrLf
    Me!テキスト2 = "数値×10" & vbCrLf
    SQL = "SELECT 文字,CLNG(文字) FROM サンプルデータ"
    Set rs = CurrentDb.OpenRecordset(SQL)
    Do Until rs.EOF
        Me!テキスト1 = Me!テキスト1 & rs(0) & vbCrLf
        Me!テキスト2 = Me!テキスト2 & rs(1) * 10 & vbCrLf
        rs.MoveNext
    Loop
    Set rs = Nothing
End Sub

[変換できない場合のエラー]
文字を変換しようとした場合に発生したエラー
「実行時エラー 3464 抽出条件でデータ型が一致しません。」
エラーメッセージ

NULLを変換しようとした場合に発生したエラー
「実行時エラー 94 Null文字の使い方が正しくありません。」
エラーメッセージ

整数型( -32,768 ~ 32,767)を超える文字を変換しようとした場合に発生したエラー
「実行時エラー 6 オーバーフロー
エラーメッセージ

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

BackHome BackSQL Tips

Copyright(C) FeedSoft