クエリでの関数の活用


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
vol156

これならわかるマイクロソフトアクセス活用法
            -->クエリでの関数の活用
              
発行者:高内 章治 2012年3月21日
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏ 今日の内容 ━━━━━━━━━━━━━━━━━━━━━━━━┓

┃【01 - ご挨拶    】
┃【02 - トピックス  】クエリでの関数の活用

┃【03 - 編集後記    】

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

─────────────────────────────────
【01 - ご挨拶    】          
─────────────────────────────────

こんにちは、高内(こうない)です。

今回は、

「クエリでの関数の活用」

についてお話したいと思います。




─────────────────────────────────

【02 - トピックス】: クエリでの関数の活用

─────────────────────────────────

クエリでの質問です。

データの中に商品コードがあります。
例えば次のコードです。

商品コード
A-1
A-123
A-2
A-21

これを商品コードで並べ替えたいとします。

そのまま「商品コード」で昇順にすると、テキストですから、上のようになります。

でも、「-」の前と後で並べ替えたいときがあります。
「-」の後ろは、順番ですから数字で並べ替えたい場合です。

商品コード
A-1
A-2
A-21
A-123

こんな順番になります。

こういう並べ替えをおこないケースって結構あるのです。
商品コードなどは、順番でつけている場合が多いですから数字順で並べたいですね。


あなたならどうしますか?

そうですね。
関数を使います。

アクセスには、たくさんの関数があります。
クエリの中でも使えます。

いくつか説明します。

  1. left関数を使います。
    これは、項目の左からのカラム数を抽出することができます。

    例えば、
    クエリのフィールドを新しく作ります。

    NO1:Left(商品コード,2)
    などにします。
    NO1という項目を作りました。

    これは、商品コードの左から2カラムを、NO1に入れるという意味です。

  2. 次に、Mid関数を使います。
    この関数は、開始位置からの指定した文字列を取り出すことができます。
    商品コードが10カラムだとすると、

    NO2:Mid(商品コード,3,7)

    商品コードの3カラム目から、7カラムを取り出すことができます。
    でも、これはテキストですから、数字に変換する必要があります。

  3. 文字を数字に変換します。
    取り出した数字は、まだテキスト(文字)になっていますので数字に変換します。

    NO3:CInt(NO2)

    単精度の数字に変換します。

    NO3:CLng(NO2)
    倍精度です。桁数が多いときはこっちです。

    ここで一度クエリを表示させます。

    商品コード NO1 NO2 NO3
    A-1 A- 1 1
    A-2 A- 2 2
    A-21 A- 21 21
    A-123 A- 123 123
    (テキスト) (数値)

    になると思います。

    このまま、NO1、NO3で昇順にすれば商品コードが数字順で表示されます。

    クエリでは、NO1、NO2、NO3は非表示にします。
    並べ替えのみに使用します。
    「商品コード」の並べ替えはしません。

  4. もし、最初の文字が1文字か2文字かわからないときは、'-' を探す関数があります。

    ST1:InStr(商品コード,"-")

    これで、商品コードの中の「-」の開始位置を把握することができます。

    NO1:Left(商品コード,ST1-1)

    左から「-」の前までを取り出すことができます。

    NO2:Right(商品コード,10-ST1)

    文字列の末尾から指定した文字数の文字列を取り出すことができます。

    後は、並べ替えます。


ここで、注意することがあります。

関数を使って定義するときは、新しくクエリを作って関数を定義した方がよいです。
そして、並べ替えのクエリも新しく作り、関数のクエリを読み込んで並べ替えをします。

例えば、クエリの中で結合もおこなって関数も定義して、並べ替えもおこなうと、エラーがでます。

アクセスもそんなに一度に一緒にはできません。
不器用なのです。

分けて処理をおこなった方が、データを検証する場合も簡単にできます。

関数を使えるようになると、クエリの幅がずっと広がります。

やっぱり、関数の参考書は一冊持っていた方がよいと思います。


参考にしてください。



─────────────────────────────────
【03 - 編集後記    】       
─────────────────────────────────

先週、インフルエンザにかかってしまいました。

家族が、最初にかかったので病院に連れていったのですが次の日には私もインフルエンザにかかってしまいました。

香港A型でした。

熱が、38.8度でました。
2日くらい続きました。

ずっと寝ていました。
インフルエンザに初めてかかりました。
タミフルという薬で、次の日には熱は下がりました。
でも、菌はまだ残っているので、外出などはしてはいけないそうです。
感染力が強いですね。

他の人にうつしてはいけませんのでおとなしくしています。
今は、もう大丈夫ですが。

熱が上がったときは、すぐに病院に行った方がよいです。

十分に気を付けてください。
うがいと手洗いがよいようです。


◆私がアクセスをマスターできたのは!!
http://www.sk-access.com/kyozai/zaiko1.html  

テーブル作成からVBAまでマスターできます。 
「在庫管理システムをアクセスで作ってみよう」教材です。
http://www.sk-access.com/kyozai/zaiko2.html  


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
●ご意見・ご感想・ご質問
 
『メルマガでもっとお役にたてる情報を配信したいと思いますので、日ごろから疑問に思っていることを教えてください。
宛先はこちらへです』

  •  kohnai★vega.ocn.ne.jp
      (高内:こうない:)
    (メールするときは、★を@に変えてください)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


◎「これならわかるマイクロソフトアクセス活用法」 のバックナンバー・配信停止はこちら

archive.mag2.com/0000222659/index.html

◎以下のホームページからでもバックナンバーを見ることができます。

http://www.sk-access.com/mailmaga/index.html

登録・解除につきましてはご自身でお願いいたします。

※このメールマガジンの転送はOKですが、掲載された記事の内容を許可無く転載することをを禁止させて頂きます。
必ず事前にご相談ください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


1週間でアクセス(Access)のシステム開発ができる〜
「在庫管理システムをアクセスで作ってみよう」教材

「アクセスのプログラム/システムを短期間で開発したい方」、
「アクセスのフォーム/VBAを完全にマスターしたい方」のための
アクセス(Access)を使って1週間でシステム開発する究極の方法とは?

「アクセス(Access)のシステムを無料のSQL Server 2016 Expressへ
移行してみよう」教材

あなたの会社のアクセス(Access)のデータベースやシステムに不安を感じていませんか?
アクセスのデータ量が多くなり処理スピードが遅くなった。
アクセスのデータを共有したい。
セキュリティに不安がある。などと、感じている方は!!
(SQL Server 2016 Expressバージョンです。)


「アクセス(Access)プログラムの仕様書の作り方」教材
マイクロソフトアクセスを使用して、プログラムの作成/システム開発をおこないたい方の為に、
アクセス(Access)のプログラム開発に成功するために絶対に必要な「仕様書」とは?



[↑一番上へ]
[マイクロソフトアクセス活用法(メールマガジン)(ホームへ)]
11:422301

アクセス全体

VBA

SQL Server