none
3+2郵遞區號查詢程式之判別問題?? RRS feed

  • 問題

  • 小弟正在寫一個查詢3+2郵遞區號的小程式(視窗程式),

    如今我想要用:  縣市、鄉鎮市、路街巷...等、號,   做為SQL判別條件,

    EX:

    我在Frm裡面輸入,台北市-大安區-永康街-12號  此時查出郵遞區號該為10651

    我在Frm裡面輸入,台北市-大安區-永康街-9號   此時查出郵遞區號該為10650

    我該在C#程式裡面如何撰寫(如何判別),才能依輸入條件,查出正確的3+2郵遞區號??

    SQL語法又該怎麼Select??

    環境:VS-2005

    DB:MS-SQL2005

    語言:C#

    PS:我有參考相關程式,但還是希望自行撰寫,希望各位老師不吝指導。

     

    2007年2月10日 下午 01:02

解答

  • 因為他寫的是 Excel VBA ,你要看懂的話,請安裝 Excel VBA 線上手冊,對照來看,並且在 Excel  VBA IDE 環境中,用 F8 逐步執行模式來看。

    它這種作法是針對大部分巷弄而已,部分單位收件量龐大,是直接分配該單位 5 碼區碼,就跟門牌號碼沒有直接關係,你當然可以用程式碼做到這麼細,但是那就不是 SQL 語法能搞定的。甚至比如說 80107 ,高雄健保局還用到 5F ~ 12F、83301 長庚醫院是用到含附號...

    要做到這麼細,我是建議先用 SQL 語法過濾出所有前三碼的區域後,大概會有 500 筆,再從裡面用程式邏輯判斷做細部過濾,但是你必須把所有後兩碼規則都看完,你才有辦法彙總。

    2007年2月11日 上午 02:26

所有回覆

  • 你先去

    http://www.post.gov.tw/post/internet/down/index.jsp?ID=190108

    下載郵遞區號規則,你會發現後兩碼沒有通則,你沒辦法只靠 SQL 語法查詢、辨識。

    2007年2月10日 下午 03:30
  • 我有到郵局的下載區去研究過3+2郵遞區號Excel,是無法判別

    不過是否有其他方法可以讓我順利取得區號??

    也有去下載其他人的程式來分析,vb程式:http://cha.homeip.net/blog/archives/zipcode.txt

                                                               程式說明:http://cha.homeip.net/blog/archives/2005/11/excel_vba_1.html

    由於我不懂vb語法,因此很難了解他去如何判別!!

    因此,還請璉璉大大指導一番!!

     

    2007年2月10日 下午 04:19
  • 因為他寫的是 Excel VBA ,你要看懂的話,請安裝 Excel VBA 線上手冊,對照來看,並且在 Excel  VBA IDE 環境中,用 F8 逐步執行模式來看。

    它這種作法是針對大部分巷弄而已,部分單位收件量龐大,是直接分配該單位 5 碼區碼,就跟門牌號碼沒有直接關係,你當然可以用程式碼做到這麼細,但是那就不是 SQL 語法能搞定的。甚至比如說 80107 ,高雄健保局還用到 5F ~ 12F、83301 長庚醫院是用到含附號...

    要做到這麼細,我是建議先用 SQL 語法過濾出所有前三碼的區域後,大概會有 500 筆,再從裡面用程式邏輯判斷做細部過濾,但是你必須把所有後兩碼規則都看完,你才有辦法彙總。

    2007年2月11日 上午 02:26
  • 回璉璉大大:

    經由你詳細解說,我大概董意思了,所以是否再請璉璉大大不吝指教一下!!

    若我要從C#著手的話,我該先從哪個方向進行??(先IF開始?)

    2007年2月11日 上午 09:09
  • 我自己不用 C#
    2007年2月11日 上午 09:17
  • 我倒是建議你先去下載郵局的 3+2 區號查詢系統,它的資料庫是 Visual FoxPro 格式,你看一下它們的設計方式,就大概可以知道他們的做法 .

    但最好是依郵局的標準判斷公式來做 .

    2007年2月11日 上午 10:29
    版主
  • 將Excel 的資料直接轉到  SQL 裡 ,程式端不用判斷,資料庫有就查的到,資料庫沒有就顯示查無資料就行了
    2007年2月12日 上午 01:28
  • >>回好說大大:

    我已經將EXCEL匯入MS-SQL2005,但是在程式方面很難去判別...

    EX:

    10051  台北市  中正區  中山北路一段  單 3號以下

    10041  台北市  中正區  中山北路一段  雙48號以下

    像這樣在程式裡面該如何去判斷(最後面單雙),這就是我苦惱的地方...

    在SELECT條件上,其時不是很好下條件....

    若好說大大有好的片斷程式,是否可以提供來給小弟參考一下,謝謝!!

    我寫的是WinFrn、環境VS-2005、C#

    2007年2月15日 上午 08:16