ACCESS 文字列を数値型に変換する方法
ACCESSのデータで、数値型として扱いたいのに文字列になってしまっている、というケースはないでしょうか。
表示するだけならデータ型はどちらでも問題ないのですが、計算をしようとすると文字列型では対応できません。
今回は、文字列を数値型に変換する方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSをもっと使いこなしたい方向けにACCESSの関数をご紹介していきます。
Val関数の構文
文字列型のデータを数値に変換するには、Val関数を利用します。
Val関数は以下の構文で利用します。
Val ( 文字列 )
文字列には、数値に変換できる文字を指定してください。
Val関数の利用例
Val関数の利用例をいくつか記載します。
数式 | 結果 |
Val ( ”100” ) | 100 |
Val ( ”100年後” ) | 100 |
Val ( ”” ) | 0 |
Val ( “100” ) | 0 |
上記のように、指定した文字列の中から数値として認識できるものを出力します。
空白を指定すると0が戻されることと、全角文字では数値変換されないことに注意しましょう。
クエリでの利用
クエリでVal関数を利用して文字列を数値に変換する方法をご紹介します。
クエリでは、デザインビューでVal関数を利用します。
クエリをデザインビューで新規作成しましょう。
クエリのデザインビューで上段部分(フィールドリスト)に対象のテーブルをドラッグアンドドロップします。
そして、フィールドリストにおいたテーブルのフィールドから変換する対象のフィールドを下段のデザイングリッドへドラッグアンドドロップします。
今回は、「test_Val」というテーブルを作成し、その中の「値」フィールドをクエリで変換するようにしました。
そして、クエリの新しいフィールドを追加します。
フィールド行に下記のように記述しましょう。
変換後: Val([値])
クエリでは、自分で計算式を書いて新しい列を追加することが可能です。
この際、「:」より左側の部分はフィールド名を表します。
今回は「変換後」としました。
そして、「:」より右の部分は計算式です。
Val関数を使って「値」を数値変換させています。
では、データシートビューで結果を見てみましょう。
このように、右側に列が追加されて変換後の値が表示されました。
左側の「値」フィールドでは入力値が左寄せになっていますよね。
これはテキストデータなので標準で左寄せ表示されているのです。
一方、今回追加した変換後フィールドでは右寄せになっています。
ここから数値データに変換されていることが分かります。
クエリではこのようにVal関数を使って文字列を数値に変換できます。
VBAでの利用
次に、VBAでの利用方法をご紹介します。
今回は、テキストボックスに入力した値を、文字列から数値に変換してメッセージ表示する機能を作成しました。
こちらの作成方法を見ていきましょう。
まずは、フォームを作成します。
フォームをデザインビューで作成していきましょう。
今回作成したフォームはデザインビューでは下記のようになっています。
中央に置いてあるのは非連結のテキストボックスです。
非連結とは、特定のテーブルと連携しておらず入力した値がフォームに表示されるのみで、フォームを閉じれば値がクリアされるという状態です。
そして、その下に変換ボタンを配置しています。
変換ボタンのプロパティシートでは、クリック時イベントとしてイベントプロシージャを設定してあります。
このイベントプロシージャの中身を見ていきましょう。
プロパティシートのクリック時イベントの一番右の「・・・」ボタンを押すと、VBEが起動します。
Private Sub 変換_ボタン_Click()
MsgBox Val(Me!テキスト)
End Sub
これが今回設定したプロシージャです。
Val関数を使って、Me!テキストという非連結のテキストボックスの名称を指定しています。
こうすることで、テキストボックスに入力された値を、Val関数で数値に変換してメッセージボックスで表示することが可能です。
以上、文字列を数値型に変換する方法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。