Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Access 2016)
大文字小文字を区別して昇順に並べ替えたい
投稿日時: 21/01/06 11:12:44
投稿者: vaioyuki

いつもお世話になっています。
 
今回はAccessで並べ替えを行っているのですが、
ユーザコードに大文字小文字が混在しており、こちらを区別して昇順に並べ替えたいと思っています。
 
検索していると「NLSSORT関数」を見つけました。
 

ORDER BY
    TOTAL.会社_テナント
    , TOTAL.組織コード
    , TOTAL.[ユーザコード]
    , TOTAL.[ソート用2] DESC
    , TOTAL.兼務会社コード
    , TOTAL.兼務組織コード;

 
もとはこちらでソートしています。
こちらを
 
ORDER BY
    TOTAL.会社_テナント
    , TOTAL.組織コード
    , NLSSORT(TOTAL.[ユーザコード],'NLS_SORT=JAPANESE_M')
    , TOTAL.[ソート用2] DESC
    , TOTAL.兼務会社コード
    , TOTAL.兼務組織コード;

 
にすると「式に未定義関数 nlssort があります」となります。
 
これももまた検索すると、参照設定に「参照不可・・・」のチェックを外せとありますがこちらが見当たりません。
別の方法があれば教えてください。
よろしくお願いします。

回答
投稿日時: 21/01/06 11:26:27
投稿者: hatena
投稿者のウェブサイトに移動

Accessで「NLSSORT関数」は聞いたことがないので、検索してみたらOracleの関数ですね。Oracleの関数はAccessでは使えません。
 
「NLSSORT関数」と同様の機能の関数を自作することになります。幸いなことに、MSが下記で公開しています。
 
大文字と小文字を区別した順序でレコードを並べ替える - Access
https://support.microsoft.com/ja-jp/office/%E5%A4%A7%E6%96%87%E5%AD%97%E3%81%A8%E5%B0%8F%E6%96%87%E5%AD%97%E3%82%92%E5%8C%BA%E5%88%A5%E3%81%97%E3%81%9F%E9%A0%86%E5%BA%8F%E3%81%A7%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88%E3%82%8B-8fea1de4-6189-40e7-9359-00cd7d7845c0
 
上記で紹介されている関数を使用すればいいでょう。

投稿日時: 21/01/06 13:05:44
投稿者: vaioyuki

ありがとうございます!!
 
SQLなので使えるのかなと思ってました。(^^;)
 
早速やってみます!!