AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
データベース【住所録を作ろう(最終版)】
前頁では「郵便番号辞書」の検索について述べました。ここではこれまで作成してきた「住所録」に郵便番号辞書から住所を取得する検索機能を追加し、これを最終版とします。
 
郵便番号辞書(テーブル「ZIPDIC」)は「d011」にて作成しておくという事が前提です。本プログラムで郵便番号辞書を作成する機能はありません。
★こういった辞書は、データベースの管理者が作成・管理を行い、通常の利用者は検索し利用するのみで作成・編集は出来ないようにするのが良いという場合が多いです。作成編集が出来るという事は、消す事も出来るし、古いものに差し替える事も出来るという事です。会社の社内データベースの場合は特に重要です。各クライアントPCでも自分で辞書を作りたい、というような場合は、管理者のみが作成編集管理が出来る「共通辞書」と、各クライアントでも作成編集管理が出来る「個人辞書」とを別々に用意し利用出来るようにするパターンを取ります。
 
「d011」で郵便番号辞書(テーブル「ZIPDIC」)を作成しました。そのフィールド構成は以下のようになっています。
0郵便番号ZIP文字列(文字数7)
1住所1カナADK1文字列 都道府県名(半角カナ)
2住所2カナADK2文字列 市・区名(半角カナ)
3住所3カナADK3文字列 町村名等(半角カナ)
4住所1ADR1文字列 都道府県名
5住所2ADR2文字列 市・区名
6住所3ADR3文字列 町村名等
 
住所録テーブルのフィールド構成は
名前変数名内容
登録番号N整数 1,2,3,… 他と重複しない
名前PNAME文字(最大半角20文字)
名前(かな)PKANA文字(最大半角20文字)
郵便番号ZIP1文字(半角3文字)郵便番号前半部
郵便番号ZIP2文字(半角4文字)郵便番号後半部
住所1ADR1文字(半角80文字)
住所2ADR2文字(半角80文字)マンション名等
電話番号TEL文字(半角14文字)
FAX番号FAX文字(半角14文字)
携帯番号PHONE文字(半角14文字)
備考BIKO文字(半角80文字)
ですが、住所録テーブルの郵便番号は2つに分けている事と、取得した住所1・住所2・住所3は、全て連結して、住所録テーブルの住所1に入れるようにするという事に注意します。
 

プロジェクト「d013」の準備を行います。「C:\DelphiProgram\jww」フォルダの中に「d013」というフォルダを作成し、前回の「d010」からファイルを全部コピーしてきます。Delphi6を起動します。メニュー「プロジェクト」→「オプション」を実行し、下記の設定を行います。
[アプリケーション]頁
 タイトル
d013−住所録4
[ディレクトリ/条件]頁
 パス及びディレクトリ
C:\DelphiProgram\db\d013

メニュー「ファイル」→「プロジェクトに名前を付けて保存」
「C:\DelphiProgram\db\d013」の中に「d013.dpr」として保存
メニュー「プロジェクト」→「d013を再構築」を実行し、エクスプローラ等で不要になった「C:\DelphiProgram\db\d013」内にある「d010.〜」のファイルを消しておきます。

メニュー「表示」→「プロジェクトマネージャ」
を実行し、コード画面の左側にドッキングさせておきます。
 
Form3、Form4の画面レイアウトを下記のようにしました。

 

[〒検索]をクリックして、画面を表示し、郵便番号から住所を検索して住所1にそれを入力するようにします。
 

[〒検索]をクリックしたら表示させる画面を作ります。画面レイアウトは下記のようにしました。Form6 となります。

 
[〒検索]をクリックしたら、Form6 のクラス定義のPublic部に記述した変数 P_yubin に、現在入力している郵便番号を入れて、Form6を表示(ShowModal)します。郵便番号辞書検索画面で、検索を行って[OK]をクリックしたら、変数 OKflag、P_yubin、P_addr、に値を入れて画面を閉じ、Form3、4の側で、郵便番号欄と住所1欄を書き換えるようにします。
 
郵便番号辞書検索画面は、前頁の「d012」でのプログラムと基本的には変わっていません。
SELECT * FROM ZIPDIC
 WHERE ZIP LIKE '〜%';

SELECT * FROM ZIPDIC
 WHERE ZIP LIKE '〜%'
 ORDER BY ZIP;
として郵便番号順に並べるようにした事、Memo1 に表示させていたのを StringGrid1 に表示させるようにした事、表示を最大1000個までに制限した事、です。あまりに沢山表示されても目で選択するのが大変ですし、多くなり過ぎて遅くなるのも問題ですから表示制限しています。
 
表 StringGrid1 で、入力したい郵便番号と住所を選択し、[OK]をクリック、或いは、表をダブルクリックしたら OKflag をTrueにして閉じます。この画面を表示した際に OKflag を False にして、[キャンセル]をクリックした時には何もせず閉じて結果的に OKflag は False として返されますが、これは、右上の[×]で閉じた時には「キャンセル」と同じ意味になる、というような具合にしています。
 

本プログラムは、プログラム「d011」を実行し、既に郵便番号辞書を作成した、という事を前提としています。もしこれを行っていない場合には、検索は出来ませんので注意して下さい。

今回はソースプログラムと実行プログラムを一緒に圧縮しています。プログラムの内容についてはソースプログラムを参照して下さい。
 
 
 
 

今回で「住所録」の話はお終いです。

 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
シェアウェア
Script!World
データベース
 A B C D
 E F G H
 I J K L
 M N O P
 Q R S T
 U V W X
 Y Z
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.