プロが教える店舗&オフィスのセキュリティ対策術

Access2010初心者です。よろしくお願いいたします。

顧客管理データから、カレンダー配布先レポートを作成したいのですが
配布先の近隣住所毎にするためクエリーを作成しました。

住所から○○市を抜いた 町村番地の演算フィールドを追加し、抽出条件に Like "秋葉*"Like "山 之手*"Like "丸山*"を入力
KKY_MEMFLG2のフィールド(Yes/No型)の抽出条件にTrue入力

困っている事
1.実行したところ KKY_MEMFLG2がTrue以外のデータも表示されてしまいます。(4件ほど)
2.住所を並び替えで昇順にしたら丸山・山之手・秋葉の小さい番地順になりました。
  できるなら順番を秋葉・山之手・丸山小さい番地順にしたいのですが
  降順だと秋葉・山之手・丸山大きい番地順になってしまいます。
教えていただけたら幸いです。

SQLは下記の通りです。

SELECT M_顧客.KKY_NAME, Mid([KKY_ADDR1],InStr([KKY_ADDR1],"市")+1) AS 町村番地, M_顧客.KKY_TEL, M_年号.NEN_NENGOU, M_顧客.KKY_NEN, M_顧客分類.KKB_NAME, M_顧客.KKY_MEMFLG2
FROM (M_顧客 INNER JOIN M_年号 ON M_顧客.KKY_NENGOU = M_年号.NEN_CODE) INNER JOIN M_顧客分類 ON M_顧客.KKY_KKBCOD = M_顧客分類.KKB_CODE
WHERE (((Mid([KKY_ADDR1],InStr([KKY_ADDR1],"市")+1)) Like "秋葉*") AND ((M_顧客.KKY_MEMFLG2)=True)) OR (((Mid([KKY_ADDR1],InStr([KKY_ADDR1],"市")+1)) Like "山之手*")) OR (((Mid([KKY_ADDR1],InStr([KKY_ADDR1],"市")+1)) Like "丸山*"))
ORDER BY Mid([KKY_ADDR1],InStr([KKY_ADDR1],"市")+1);

A 回答 (2件)

Q1


WHERE

(((Mid([KKY_ADDR1],InStr([KKY_ADDR1],"市")+1)) Like "秋葉*") AND ((M_顧客.KKY_MEMFLG2)=True))

OR (((Mid([KKY_ADDR1],InStr([KKY_ADDR1],"市")+1)) Like "山之手*"))

OR (((Mid([KKY_ADDR1],InStr([KKY_ADDR1],"市")+1)) Like "丸山*"))

KKY_MEMFLG2 は秋葉* に関してだけ設定してますが
山之手* と 丸山* はノーチェックですね。

Q2
順番:IIf(InStr([KKY_ADDR1],"秋葉")>0,1,IIf(InStr([KKY_ADDR1],"山之手")>0,2,IIf(InStr([KKY_ADDR1],"丸山")>0,3,10)))
というようなのをクエリのフィールドに追加して
昇順で並び替え設定すれば、地名ではお望みの順番になります。
が番地部分は諦めたほうが・・
1-1-1
1-2-1
1-10-1
というのがあるとしたら、文字コード順での並びになるので
1-1-1
1-10-1
1-2-1
となってしまいますね。
    • good
    • 0
この回答へのお礼

nicotinism様

お返事が遅くなり申し訳ございません。

順番フィールドを作成し、地名の順番は望み通りになりました。
ありがとうございました。

番地は営業さんに相談し、諦めてもらいました。

ただ、地名の間に空欄が入らないかと相談されてしまいました。

こうなるとマクロを使うしか方法がないんでしょうか?

マクロはよくわからなくて・・・

もし、お分かりになられたら教えていただけたら嬉しいです。
よろしくお願いいたします。

お礼日時:2013/05/21 12:38

その住所に何らかの規則性があれば、ある程度は出来なくもないとは思います。


以前に回答したものですが、
http://oshiete.goo.ne.jp/qa/8081650.html
私は、「半角数字」「全角文字」、
#4 さんは数字の出現に着目して回答しています。

あの中でも皆さん述べられていますが、例外がつきものなので
あれこれ考えるよりも、ひたすら無我の境地でスペースを挿入したほうが早いかもですね。
    • good
    • 0
この回答へのお礼

nicotinism様

何度もありがとうございました。

今回は地区の並び替えのみで勘弁してもらいました。

また、よろしくお願いいたします。

お礼日時:2013/05/22 12:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!