• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access2003でクエリーを作った場合。。。)

Access2003でクエリー作成時の実績データと商品マスタの商品コードの結合方法

このQ&Aのポイント
  • Access2003でクエリー作成時、実績データのテーブルと商品マスタのテーブルで商品コードを結合させる方法を教えてください。
  • Access2003でクエリー作成時、商品マスタには半角と全角の商品コードが存在していますが、同じクエリーで半角と全角を不一致とみなす方法を教えてください。
  • Access2003でクエリー作成時、実績データの商品コードと商品マスタの商品コードを結合させると、半角と全角が一致してしまいます。どちらか片方を選択する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

Access97はUnicodeへの過渡期だったと記憶しています。 なので、出来たのかも? こんな標準モジュールを用意して Function chr2asc(Optional trgStr As String) As String Dim splitStr As String '文字の区切りの「文字は|」です Dim i As Long If trgStr = "" Then trgStr = "00000000" End If splitStr = "|" '文字区切り記号をパイプラインに設定。苦し紛れかもです '企業名にパイプラインを使っているのは無さそう?なので大丈夫かと・・ For i = 1 To Len(trgStr) chr2asc = chr2asc & Format(Asc(Mid(trgStr, i, 1))) & splitStr Next chr2asc = Left(chr2asc, Len(chr2asc)) End Function で、これをクエリのデザインビューで新たなフィールドを設定し、こんな風 フィールド 商品コード|商品コードASC:chr2asc([商品コード]) テーブル 商品マスタ | としたようなクエリを作成して この辺(それぞれの「商品コードASC」)で結合プロパティを設定されては如何ですか? ※お察しの通り、最大で一文字あたり、7文字+区切り文字1文字を要します  なので最悪の場合には 255 / 8 ≒ 31 文字でエラーとなります  

myan-myan
質問者

お礼

解答ありがとうございます。 試してみたいと思います。 また分からない事があれば質問出したいと思いますので、 その時はまたよろしくお願い致します。

その他の回答 (1)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

事前にもう1個ずつクエリを作成して ASC関数を使った自作関数を使えば出来そうな気もしますが、 半角・全角を区別するとして 大文字・小文字は区別しなくとも良いのでしょうか?

myan-myan
質問者

お礼

回答ありがとうございます! 大文字・小文字も不一致にしたいです。 ASC関数は使ったことがないので良く分からず、今調べている所です。 ACCESS97では不一致だったものが、2003では変わったのでしょうか??? ※商品コードを結合させて、商品マスタテーブルから情報をプラスして、  実績データテーブルの金額を集計させたいのです。  今の状態ですと、全角と半角両方と結合してしまうので、  金額が二重に集計されてしまって困っています。 お忙しい所すみません。宜しくお願いします。

関連するQ&A