LoginSignup
2
1

More than 3 years have passed since last update.

クエリーで文字列を数値や日付に変換する(#エラー対策)

Last updated at Posted at 2016-01-27

テーブルのフィールドは、すべてテキスト形式で作成する。

Accessを覚えなくても、データベースを作成できるようにAccessデータベースのテンプレートを作成しています。その時の注意点の備忘録です。

フィールドの属性を色々と設定したくないので、すべてのフィールドを[テキスト]でフィールド定義しています。そうすると項目名が自由に変更できます。

image

テキストを数値に変換する。

金額は、数値なので、テキストを数値に変換する必要があります。
金額は、数量 x 単価 として計算式で定義します。

テキストを数値に変換するには、Val関数を使います。
Val([MEI004])

しかし、未入力の場合は、エラーになりますので、IsNull関数で判定してください。
IIf(IsNull([MEI004]),0,Val([MEI004]))

image

Val([MEI004])*Val([MEI006])

このように定義するとデータが未入力の時に#エラーになるので、下記のように定義するとよい。

▼金額項目のクエリー定義
IIf(IsNull([MEI004]),0,Val([MEI004]))*IIf(IsNull([MEI006]),0,Val([MEI006]))

テキストを日付に変換する

CDate関数を使うとテキストを日付に変換できます。
日付: CDate([FLD011])

しかし、未入力の場合は、エラー表示してしまいます。
image.png

これを回避するには、IsDate関数で判定します。

日付: IIf(IsDate([FLD011]),CDate([FLD011]),Null)

image.png

こうやって、すべてのフィールドを[テキスト]で作成したデータベースが、
汎用データベース カードボックスBARI(Excel連携)

自由に項目が変更できるようにしています。
image


AccessとExcelを連携してクラウドシステムを作成する

データベースをAzure SQL にセットして、AccessやExcelのプログラムから データベースを遠隔地間で共有するシステムを公開しています。


http://access-cloud.hatenablog.com/entry/database

image.png

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1