明日の朝一番にソフト改善の打ち合せがあるので急いで教えて下さい。m(_ _)m

質問は、郵便番号と住所を入力する別々のフィールドがある入力画面で
郵便番号を入力すると住所のフィールドへ郵便番号辞書(IMEなど)から
住所を自動で入力する方法はありますか?
Accessにはあった様に思うのですが・・・・同様のものです。
私はユーザー側なので具体的なコーディングなどは結構ですが
難易度が高いのであれば難易度も教えて下さい。
因みに、DBはOraclです。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

どもども田吾作7です。



>郵便番号のDBを作るのは、メンテナンスを考えると採用出来ません。
そうですか?今後のメンテを考えた行動だと思いますよ。
もし郵便番号が8桁に変換になった時でも、修正が容易になると思います。
今まで見てきた会社の多くは、このような方式を取ってますよ。
HAL007さんのところでは、どのような問題が起こることを想定しての「できません」なのでしょうか?

これは個人的な意見なのですが、郵便番号テーブルを追加する以外は、他に方法がないと思います。
ただ画面がVBで出来てるだけで、VCでも何でも、もととなるデータがないとムリのはず・・・

あとはIMEに依存するしか、思い浮かびません。。。('_`)ウゥ
お役に立てずにスイマセン。。。

この回答への補足

ハァー・・・・
郵便番号は住所入力の支援に使う目的です。それならば、IMEの郵便番号辞書で
足りると言うことです。しかも、首都圏在住の千人程度の住所の為に郵便番号の
変更の度にテーブルをメンテナンスしなかえればならない方法は採れないと言うことです。

私は、Accessの住所入力支援を提供するDLLがMSから提供されて
いるのかなぁ~と思っただけです。

補足日時:2001/07/08 23:09
    • good
    • 0
この回答へのお礼

どうもどうも(^^;;;
別の質問でシステムの規模など詳細を書いたのと混乱して
不躾な補足を書き申訳ありませんでした。

お礼日時:2001/07/08 23:35

こんにちは。

itohhといいます。

会社での開発なのですね?

市販のコンポーネントを購入しても良いのでしたら、
文化オリエント社のInputManというコンポーネントの中に
郵便番号コントロールがあり、このコントロールを使用すれば、
比較的簡単に実現します。

URL:http://www.boc.co.jp/default.htm


また、Visual Basicの基本機能のみでも、作り込めばOKです。
田吾作7さんが回答しているように郵政省HPからcsvファイルを
ダウンロードしてオラクルに郵便番号テーブルを作成すれば
良いのではないでしょうか?

ただし、どの方法を採ったとしても、定期的に郵便番号ファイル
を更新しなければいけないと思いますよ。
郵政省HPを確認して頂ければわかると思いますが、郵便番号は
変更されるものです、最近では、埼玉県さいたま市など、新しい
市などが生まれています。最新の住所に対応しようと思ったら
定期的に更新しなければいけませんよね。
    • good
    • 0
この回答へのお礼

ありがとうございます。
VBで作り込む必要があると言うことですね!
システムの規模を失念してしまった為に、一般の住所録と解されてしまったようで
ご迷惑をかけました。(別の質問で詳細を書いたので錯覚していました)

規模は千人程度の人事管理のサブシステムで、年間100件前後の住所登録や変更
しか発生しない見込みです。なので、新たなソフトを買う予算やメンテナンスに
手間とかける訳には行きません。

お礼日時:2001/07/08 23:33

どもども田吾作7です。



Accessの住所入力支援機能はアドバンス技研株式会社がMicrosoftのためだけに作成したもので、ライセンスが絡むので、移植できるかどうかは・・・
(; ̄▽ ̄A あせあせ

使用するPCのIMEを設定したら標準機能で可能ですよ。IME98か2000以上だったと思いますけど、IMEのプロパティで郵便番号辞書をチェックをしていたならば、郵便番号からの住所入力が可能です。ちなみにデフォルトで灰色でチェックが入っていると思いますが、白色のチェックになるようにしてください。

そうなると、使用可能PCに制限がついてしまうおそれがあるので、できたらDBに郵便番号を持たせたほうがいいとおもいます。参考URLを参照してください。
郵政省のHPから全国の郵便番号辞書をCSV形式で得ることができます。
あとはDBの設計者とPGの腕で、容易に仕様をこなすプログラムが作成できると思います。

でわでわ・・・

参考URL:http://www.post.yusei.go.jp/newnumber/index.htm
    • good
    • 0
この回答へのお礼

>>Accessの住所入力支援機能はアドバンス技研株式会社がMicrosoftのためだけに作成したもの
なるへそ!!
VBにはその種のものがないと言うことですネ!
郵便番号のDBを作るのは、メンテナンスを考えると採用出来ません。
従って、簡単に出来る方法はないと言うことですか!!「

お礼日時:2001/07/08 22:53

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q英語式の住所の書き方を教えてください。

英語式の住所の書き方を教えてください。

Aベストアンサー

はて?米国の場合ですが、番地、ストリートが最初に来ます。番地より細かい単位、つまり部屋番号等はストリートより後に来ます。
つまり
番地、ストリート、部屋番号、市、州、ZIPコード、国
という順番です。

#1さんの回答のように最初に部屋番号を示すような住所表記を米国で見たことは私は一度もありません。

1241 Glenn Street Suite 101 Richmond VA 29301 (架空の住所です)

Glenn Streetというのがストリート、1241は番地、Suite 101というのが部屋番号です。Richmondは市の名前、VAは州です。

これと同じ形式で神奈川県鎌倉市台3-1-1コーポ緑201号室 247-0001 (架空の住所)を表記するなら

3-1-1 Dai Midori-corp 201 Kamakura Kanagawa 247-0001 Japan

となると思いますね。

QVBで郵便番号を入力したら自動住所表示

VBで郵便番号を入力したら自動住所表示したいと思っています。
KEN_ALL.CSVをダウンロードして
ACCESSへインポートしたのですが
そこからどうしたら良いかわかりません。
おしえてください

Aベストアンサー

こんな感じですかね?
なんとなくですみません。


Dim cn As New OleDbConnection
Dim cmd As New OleDbCommand
Dim rs As OleDb.OleDbDataReader

cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=~\ファイル名.mdb"

cn.Open()

'コマンド設定
cmd = cn.CreateCommand
cmd.CommandText = "select 都道府県名,~~"

'コマンド実行してリーダーを設定
rs = cmd.ExecuteReader
rs.Read()

Textbox1.Text = rs.Item("都道府県名").ToString

rs.Close()
cn.Close()

Q英語での住所の書き方。

オーストラリアへ自己紹介の書類をFAXするのですが、英語でもの自分の住所の書き方がわかりません。
この住所だと、どう書けばいいのでしょうか?
『〒111-2222 大阪府 堺市 夕日町 1-2-3』
※上の住所は実在しません。
特にわからないのが、どこを大文字にするのか、『日本』をどのように付ければいいのか、郵便番号をどう書くのか、〒マークがいるのか、番地の書き方などがわかりません。
今日中に出す書類なのでスグに教えてください。

Aベストアンサー

皆さんが回答されてないことがあるので,あらためて回答します.

(1) (your name)
1-2-3 Yuuhi-cho, Sakai-shi, Osaka-fu,
JAPAN 111-2222

(2) どこを大文字にするか?
各単語の頭を大文字にするか,全部大文字でもいいのです.むしろ,全部 block letter といって大文字活字体で書くのが最も見誤りが少ないので勧めることが多いです.

(2) 日本をどのように付けるか? 郵便番号は?
最後です.(上の例)

(3) 〒マークがいるのか?
要りません.国ごとに番号体系が違いますが,日本では番号だけで十分です.

誤解されやすいのですが,英語での日本の国内住所が何のため使われるのかと言えば,むしろ外国から日本に来る郵便の配達で使われます.たとえば,日本の郵政公社の配達員が読んで理解できないと,日本の受取人に配達されません.ですから,外国で発信人が書く日本のアドレスは,ただひたすら正確に書いてくれるように,あらかじめ日本から発信する時に明確にしてあげる必要があるわけです.

したがって,たとえば,sakai-shi を Sakai とだけ書くと,大阪府内に,市でない境町とかあった場合に,混乱が生じるかもしれません.

皆さんが回答されてないことがあるので,あらためて回答します.

(1) (your name)
1-2-3 Yuuhi-cho, Sakai-shi, Osaka-fu,
JAPAN 111-2222

(2) どこを大文字にするか?
各単語の頭を大文字にするか,全部大文字でもいいのです.むしろ,全部 block letter といって大文字活字体で書くのが最も見誤りが少ないので勧めることが多いです.

(2) 日本をどのように付けるか? 郵便番号は?
最後です.(上の例)

(3) 〒マークがいるのか?
要りません.国ごとに番号体系が違いますが,日本では番号だ...続きを読む

QAccess-郵便番号と住所の整合チェック

お世話になります。
Accessにて顧客管理システムを作成しています。掲題について、連結サブフォームでの入力項目の郵便番号には入力支援として住所の自動入力は設定しています。
ただ、その郵便番号入力後 住所を入力者が変えた時、郵便番号と異なる場合のチェックを保存処理のボタンを押したタイミングでDBに予め用意したフラグフィールドに付けたいです。
このチェック方法をVbaのコードで示して頂けると助かります。どうかよろしくお願いいたします。

※住所から郵便番号を自動入力で変えるということは考えてません。郵便番号と住所、どちらが正しい情報なのか区別するため、ただ一致しないという判別をつけるだけであとで入力者本人に確認する運用にします。

Aベストアンサー

【訂正】[住所X_控え]は不要!

添付図通りに[住所1_控え]、[住所2_控え]を用意し、もって比較し[住所不一致]を更新するコードを書いてみました。そして、実際に試した場合、一旦、別のレコードに移動した場合に[住所1_控え]、[住所2_控え]を再現する必要があることに気付きました。そうしないと、新たな[住所1]、[住所2]との正しい比較が出来ないからです。

Private Sub Form_Current()
  If Me.NewRecord Then
    Me.住所1_控え = ""
    Me.住所2_控え = ""
  Else
    Me.住所1_控え = ZipConv(Me.郵便番号, zcKen)
    Me.住所2_控え = ZipConv(Me.郵便番号, zcCty1) & ZipConv(Me.郵便番号, zcCty2)
  End If
End Sub

そこで、某サイトのZipConv()を利用して[住所1_控え]、[住所2_控え]を再現。でも、そんなことをする位ならば・・・

Public Sub 住所不一致_Update()
  Dim isNotAgree As Boolean
  
  If Len(Me.郵便番号 & "") Then
    isNotAgree = CBool(Me.住所1 <> ZipConv(Me.郵便番号, zcKen))
    isNotAgree = isNotAgree + CBool(Me.住所2 <> ZipConv(Me.郵便番号, zcCty1) & ZipConv(Me.郵便番号, zcCty2))
    Me.住所不一致 = isNotAgree
  End If
End Sub

と、ZipConv()をもって比較すれば済む話。そういうことで、コメントアウトしている行は不要。つまり、[住所1_控え]、[住所2_控え]は不要。そういうことになるようです。

Option Compare Database
Option Explicit

Private Sub Form_Current()
  'If Me.NewRecord Then
  '  Me.住所1_控え = ""
  '  Me.住所2_控え = ""
  'Else
  '  Me.住所1_控え = ZipConv(Me.郵便番号, zcKen)
  '  Me.住所2_控え = ZipConv(Me.郵便番号, zcCty1) & ZipConv(Me.郵便番号, zcCty2)
  'End If
End Sub

Private Sub 住所1_AfterUpdate()
  住所不一致_Update
End Sub

Private Sub 住所2_AfterUpdate()
  住所不一致_Update
End Sub

Private Sub 郵便番号_AfterUpdate()
  Me.住所不一致 = False
End Sub

Public Sub 住所不一致_Update()
  'Me.住所不一致 = CBool((Me.住所1 <> Me.住所1_控え) + (Me.住所2 <> Me.住所2_控え))
  
  Dim isNotAgree As Boolean
  
  If Len(Me.郵便番号 & "") Then
    isNotAgree = CBool(Me.住所1 <> ZipConv(Me.郵便番号, zcKen))
    isNotAgree = isNotAgree + CBool(Me.住所2 <> ZipConv(Me.郵便番号, zcCty1) & ZipConv(Me.郵便番号, zcCty2))
    Me.住所不一致 = isNotAgree
  End If
End Sub

さてさて、問題は、[住所1]と[住所2]とを変更すべき事態の発生頻度です。事実上はゼロではないでしょうか?いずれにしろ、私の当初アイデアには致命的な問題点があったので撤回します。

【訂正】[住所X_控え]は不要!

添付図通りに[住所1_控え]、[住所2_控え]を用意し、もって比較し[住所不一致]を更新するコードを書いてみました。そして、実際に試した場合、一旦、別のレコードに移動した場合に[住所1_控え]、[住所2_控え]を再現する必要があることに気付きました。そうしないと、新たな[住所1]、[住所2]との正しい比較が出来ないからです。

Private Sub Form_Current()
  If Me.NewRecord Then
    Me.住所1_控え = ""
    Me.住所2_控え = ""
  Else
    Me.住所1_控え = ZipC...続きを読む

Q英語での住所の書き方

宮崎県宮崎市日本町(ちょう)123番地5という場合の英語での住所の書き方を教えてください。これは架空の住所です。

Aベストアンサー

123-5Nihon-cho,Miyazaki-shi,Miyazaki-ken JAPAN
ですね。県と日本の間に郵便番号も入れておいた方がいいと思います。町、市、県は英語に訳したものでも
いいと思いますが、上のでも充分です。

Q【VBA】郵便番号を入れたら住所が出てくる仕組み

http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_130_050.html

このサイトを参考に見たのですが
かなり難しそうなのですが

これは簡単にできるものでしょうか?

Aベストアンサー

IMEでよかったらですが、関数を使った一案です。
IMEのツール=>辞書の追加で 郵便番号辞書の機能を追加

  A      B    C
 郵便番号   住所1 住所2
=PHONETIC(B2)

B2セルに =PHONETIC(B2)セルに入れて下までコピーしておきます。

B列に 全角で郵便番号を入れると、希望の住所に変換できます。
A列には、郵便番号が表示されます。
C列には、残りの住所を入力します。
住所入力がかなり楽になるのは間違いないです。


但し、IMEの郵便番号辞書は、常に最新に更新されるわけではないので
注意は必要です。

Q至急おねがいします。英語での住所の書き方について

急ぎの為、早めにご回答いただけると幸いです。
英語での住所欄の書き方に関してなのですが、

address1
address2
address3
city
country

という構成になっている場合、
都道府県はどこに記載すればよろしいでしょうか?

どうか回答よろしくお願いいたします。

Aベストアンサー

ご指摘のとおり、アメリカでいう州や地域に関する欄 (State/Province) が無い場合は、

City として、「市町村名,都道府県」をまとめて書いてしまう手があります。

アルファベットのみしか受け付けないような設定の場合、カンマを省いて 単なる半角スペースで空けることでも対応できます。

Q帳票形式のフィールド入力の時、TABオーダーで同一列の下のフィールドに

帳票形式のフィールド入力の時、TABオーダーで同一列の下のフィールドに移動したい

使用環境:ACCESS2003

↓のように帳票形式で表示しているテーブル


商品ID    納入日    仕入NO   管理コード
13    20091205      2569
14    20100326      6824
15    20100422      2548
16    20100430      3654

バーコードリーダーで管理コードを
順次入力したいのですが

理想はバーコードリーダー入力が終われば次の管理コードフィールドに
カーソルが移動してくれるのいいのですが、

それが出来ない場合は、バーコードリーダーで値を入力した後、
TABキーやEnterを押すと
次の管理コードフィールドにカーソールが移動するように出来れば
大変嬉しいのですが、


どなたかよきアドバイスをいただけますようお願い申し上げます。

Aベストアンサー

> ↓のように帳票形式で表示しているテーブル

フォームの帳票形式を使用して、テーブルのデータを表示
されている、ということでよろしいでしょうか。

そうであれば、

> TABキーやEnterを押すと次の管理コードフィールドに
> カーソールが移動する

については、フォームの(コントロールの)設定で対応可能です。
(なお、バーコードリーダーは使用したことがないため、No.1の方と
 同様、バーコードの読み込みを拾う方法はわかりません(汗))

1)フォームをデザインビューで開く
2)適当なところをダブルクリックするなどして、プロパティシートを
 開いておく
3)EnterキーやTabキーで移動したくないコントロール(テキスト
 ボックス)を選択
4)プロパティシートの『その他』タブを選択し、『タブストップ』の
 項目を「いいえ」に設定
5)「3~4」の操作を必要なだけ繰り返したら、フォームを保存
 して閉じる

・・・以上で、最初の入力時に『管理コード』に移動しておけば、
後はEnter/Tabで次のレコードの管理コードにカーソルが移動
するようになります。
(なお、Shift+Tabの同時押しで前のレコードの管理コードに、
また、F6キーでヘッダ・フッタのコントロールに、それぞれ移動
できます(→移動可能なコントロールがある場合)。)

なお、「3~4」を繰り返し、と書きましたが、デザインビューで
何もコントロールがないところをクリック&ドラッグしたときに表示
される四角形で複数のコントロールを囲むと、囲んだコントロール
が一括で選択されます。
また、複数のコントロールを選択する別の方法として、Shiftキー
を押したまま、対象コントロールを順次クリックしていく、という
方法もあります(間違えて選択した場合は、Shiftキーを押した
まま再度クリックすれば解除が可能)。
この状態にしてやれば、「4」の操作は複数コントロールで一括
で指定できますので、参考まで。
(但し、種類の異なるコントロールを同時選択すると、必要な
 項目がプロパティシートに表示されなくなる場合があります
 ので、ご注意下さい:
 今回の例では、ラベルなど、タブ移動の対象外のコントロール
 が同時に選択されてしまうと、『その他』タブに『タブストップ』の
 項目が表示されなくなってしまいます)

※バーコード読み込み時は『管理コード』のみの移動にしたいが、
 通常の入力時は商品IDなども移動可能でないと困る、という
 場合は、マクロ/VBAを使用して設定を切り替えてやることに
 なります。
 (例えばフォーム フッタにオプショングループを設置し、その更新
  後イベントで、商品ID等の「TabStop」プロパティをTrue/False
  に切替、と)

> ↓のように帳票形式で表示しているテーブル

フォームの帳票形式を使用して、テーブルのデータを表示
されている、ということでよろしいでしょうか。

そうであれば、

> TABキーやEnterを押すと次の管理コードフィールドに
> カーソールが移動する

については、フォームの(コントロールの)設定で対応可能です。
(なお、バーコードリーダーは使用したことがないため、No.1の方と
 同様、バーコードの読み込みを拾う方法はわかりません(汗))

1)フォームをデザインビューで開く
2)適当なところをダブルクリック...続きを読む

Q英語で住所の書き方

こんにちは。
質問させてください。

この度名刺を作ることになったのですが、裏面を英文にしたいと思っています。
そこで、英語で住所の書き方を教えてください。

123-4567
富山県高岡市青葉中央1丁目2-3
赤江ショッピングセンター2F

この場合どうなりますか?
(架空の住所です)

分かる方がいらっしゃいましたら、教えてくださいm(_ _)m

Aベストアンサー

たとえば、

2nd floor, Akae Shopping Center
1-2-3 Aoba-Chuo
Takaoka City, Toyama Pref.
123-4567, Japan

町名の部分、住居表示的に「青葉中央1丁目」をまとめて
2-3 Aoba-Chuo 1-chome
とすることも考えられます。

City でなく、Takaoka-shi とか、参考URLにあるように、あまり訳しすぎたりしないで、シンプルにするのがいいですね。
「,」を適宜いれることです。

http://www.kaderu.com/oyaku.htm
http://www.armspro.net/meishido/mamechishiki/index3.html

参考URL:http://www.kaderu.com/oyaku.htm

QVB.NET2003でOraclの情報を取得する方法

いつもお世話になってます。

自分で探した結果では取得ことができませんでした。
そこで、ここにいる皆様の力を借りたく、投稿いたしました。

【ツール】Microsoft Visual Studio .NET 2003
【FramWork】.NetFramWork1.1
【データベース】Oracle10gかoracleXE

VB.NET2003のコード上でOraclデータベースに存在する各表領域の更新日を取得したいのですが、でるるのでしょうか。
できるのであればその方法をご教授いただきたいと思っています。
※参考URLを載せていただけると幸いです。

Aベストアンサー

>今回知りたいのは表領域自体の更新日
あぁなるほどです。

>B.CREATEDとB.LAST_DDL_TIMEは同じ日付時間でした~テーブルにデータが追加、変更、削除された時に更新されている。
いいえ、違うと思いますよ。
http://oracle.na7.info/8_2ex.html
CREATED:オブジェクト作成時のタイムスタンプ
LAST_DDL_TIME:オブジェクト最終更新時のタイムスタンプ
ですよ。データの追加/更新/削除のタイミングには関係ないと思います。

おそらくCREATEDLAST_DDL_TIMEがそちらの環境で同じなのは、ALTERを使用しないで、DROPとCREATEでメンテナンスをしているからではないでしょうか?

SQL(1):テーブルの作成
CREATE TABLE TBL1
(FLD1 VARCHAR2(1) NOT NULL)

SQL(2):テーブルの構成変更
ALTER TABLE TBL1 ADD
(FLD2 VARCHAR2(1) NOT NULL)

というようなメンテナンスをしていたら、作成日と更新日は異なるはずです。


なので、DBからオブジェクトをDROPするときにPURGEオプションを指定しなければ、全てDBA_OBJECTSを見たら、情報が残っています。
PURGEされていたら、跡形も残らないと思いますが、、、、



以上の事から、TABLESPACE「SCOTT」の最終更新日を取得するには
------------------------------------
SELECT *
FROM
(
SELECT LAST_DDL_TIME FROM DBA_OBJECTS
WHEREOWNER = 'SCOTT'
ORDER BY LAST_DDL_TIME DESC
) A
WHERE ROWNUM = 1
------------------------------------
っていうようにしたらよいと思いますが、どうでしょう?

>今回知りたいのは表領域自体の更新日
あぁなるほどです。

>B.CREATEDとB.LAST_DDL_TIMEは同じ日付時間でした~テーブルにデータが追加、変更、削除された時に更新されている。
いいえ、違うと思いますよ。
http://oracle.na7.info/8_2ex.html
CREATED:オブジェクト作成時のタイムスタンプ
LAST_DDL_TIME:オブジェクト最終更新時のタイムスタンプ
ですよ。データの追加/更新/削除のタイミングには関係ないと思います。

おそらくCREATEDLAST_DDL_TIMEがそちらの環境で同じなのは、ALTERを使用しないで...続きを読む


人気Q&Aランキング