ACCESS 日付を表すデータを文字列から日付型に変換する方法
ACCESSでは日付型データを扱うことがよくあります。
しかし、日付型データは扱いが難しいのも事実です。
一見、日付型データに見えるものでも、実際には文字列(テキスト)型データだった、なんてこともあります。
特に外部からACCESSへインポートしたデータは、うまく日付型にできないことが多々あります。
そんな時に、日付を表すデータを文字列型から日付型に変換する方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSをもっと使いこなしたい方向けにACCESSの関数をご紹介していきます。
文字列を日付に変換する関数
文字列を日付に変換する関数は2種類あります。
CDate関数とDateValue関数です。
二つとも引数に指定した文字列を日付型に変換しますが、その違いはCDate関数は時刻まで表示するのに対して、DateValue関数は日付のみとなる点です。
それぞれの構文は下記のとおりです。
CDate関数
CDate ( 値 )
DateValue関数
DateValue ( 値 )
どちらも単純に引数に値を指定するだけです。
CDate関数、DateValue関数の使用例
実際にCDate関数、DateValue関数を使って、文字列を日付型に変換する例を提示します。
サンプルのフォームを作成しました。
入力欄にテキストで値を入力すると、CDate、DateValueそれぞれの関数で変換した値を表示するフォームです。
実際に入力してみましょう。
一見すると変換されているのかが画面上からはわかりにくいですが、入力欄に入れたのは文字列型(VBAで記載すると””で囲った値)で、それをそれぞれの関数で日付型(VBAで記載すると##で囲った値)に変換して表示しています。
同じ値から変換していますが、CDateの方は時刻まで表示していますね。
年月日が分かれた値から日付データを生成する
それでは、より実践的な使用方法をご紹介します。
ここからは説明をわかりやすくするためにCDate関数のみで説明します。
年、月、日をそれぞれ別のテキストボックスに入力し、それをもとに年月日の日付型データを作成する場合を例示します。
以下のフォームを準備しました。
年、月、日はそれぞれ独立した非連結のテキストボックスです。
CDateにはそれをもとに日付データを生成するよう、コントロールソースを以下のように設定しました。
=CDate([年] & “/” & [月] & “/” & [日])
フォームにあるテキストボックスを & でつないでいますが、その間に “/” を入れてあります。
これはCDateで日付型に変換する際に / がないと日付として認識してくれないためです。
また、前後の””は、 / をテキストデータとして扱うために付与しています。
フォームビューで見てみましょう。
このように、年月日に値を入力するとそれをもとに日付型データを生成してくれます。
以上、日付を表すデータを文字列から日付型に変換する方法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。