- ベストアンサー
Access2003でクエリー作成時の実績データと商品マスタの商品コードの結合方法
- Access2003でクエリー作成時、実績データのテーブルと商品マスタのテーブルで商品コードを結合させる方法を教えてください。
- Access2003でクエリー作成時、商品マスタには半角と全角の商品コードが存在していますが、同じクエリーで半角と全角を不一致とみなす方法を教えてください。
- Access2003でクエリー作成時、実績データの商品コードと商品マスタの商品コードを結合させると、半角と全角が一致してしまいます。どちらか片方を選択する方法を教えてください。
- みんなの回答 (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 文字でエラーとなります
その他の回答 (1)
- nicotinism
- ベストアンサー率70% (1019/1452)
事前にもう1個ずつクエリを作成して ASC関数を使った自作関数を使えば出来そうな気もしますが、 半角・全角を区別するとして 大文字・小文字は区別しなくとも良いのでしょうか?
お礼
回答ありがとうございます! 大文字・小文字も不一致にしたいです。 ASC関数は使ったことがないので良く分からず、今調べている所です。 ACCESS97では不一致だったものが、2003では変わったのでしょうか??? ※商品コードを結合させて、商品マスタテーブルから情報をプラスして、 実績データテーブルの金額を集計させたいのです。 今の状態ですと、全角と半角両方と結合してしまうので、 金額が二重に集計されてしまって困っています。 お忙しい所すみません。宜しくお願いします。
お礼
解答ありがとうございます。 試してみたいと思います。 また分からない事があれば質問出したいと思いますので、 その時はまたよろしくお願い致します。