郵便データを他のテーブルで利用する・その2

今回作成するプログラムは、郵便番号を検索して見つけた住所をコピーして画面に入力するサンプルプログラムです。下記の動画を参考にしてください。

郵便番号のプログラムと、ユーザー登録のプログラムで共通するのは郵便番号と住所なので、その部分から改造しはじめようかと考えている。

ユーザーテーブルの項目。

1.ユーザーID(id) 主キー設定
2.ユーザー名(name)
3.郵便番号(zip)
4.住所1(add1)
5.住所2(add2)
6.メールアドレス(mail)

郵便番号テーブルの項目。

1.zip1 =郵便番号
2.ken =都道府県名
3.city =市区町村名
4.machi =町域名

郵便番号検索で使用したプログラムをコピーして変更する。

 

検索に使用したテキスト項目に入れた住所から検索できるようにしたい。郵便番号検索では「市町村」と「町域」の二つで検索を行っていたが、住所登録する場合は1か所で間に合わせたい。
SQLの記述を簡素にしていく方法から修正していく。

—————————— ここから
//
// 郵便番号SQLで検索・画面
//
// プロデルからSQLiteデータベースを操作する例 //
//SQLiteを利用するには、System.Data.SQLite.dllが必要です

/*  登録したテーブルの中身を確認するサンプルプログラムなので↓に書いておきます。
SQLiteで「CREATE TABLE yubin (
ycode1 TEXT,
ken TEXT,
city TEXT,
machi TEXT);」を実行する
*/

「Produire.Data.Base.dll」を利用する
「Produire.Data.SQLite.dll」を利用する
「Produire.Data.Grid.dll」を利用する

SQLiteというSQLiteデータベースを作る
SQLiteのデータソースを、「test01.db」に変える
ws01=「」 // 検索文字列1
ws02=「」 // 検索文字列2

メイン画面を表示する

待機する

メイン画面とは
ウィンドウを継承する
はじめの手順
初期化する
ーー貼り付けた部品に対する操作をここに書きます
//郵便表部品1のデータ表をデータに変える
終わり
初期化する手順
ーー自動生成された手順です。ここにプログラムを書き加えても消える場合があります
この内部領域大きさを{658,576}に変える
この内容を「郵便番号検索」に変える
ラベル1というラベルを作る
その位置と大きさを{17,83,53,12}に変える
その内容を「郵便番号」に変える
その移動順を10に変える
テキスト0というテキストを作る
その位置と大きさを{76,83,60,19}に変える
その移動順を9に変える
郵便ラベル3というラベルを作る
その位置と大きさを{290,332,324,12}に変える
その内容を「左のテキストボックスに検索したい市町村名の一部を入力してください」に変える
その移動順を7に変える
郵便テキスト1というテキストを作る
その位置と大きさを{76,329,126,19}に変える
その移動順を5に変える
郵便ラベル1というラベルを作る
その位置と大きさを{17,329,53,12}に変える
その内容を「市町村名」に変える
その移動順を3に変える
郵便表部品1という表部品を作る
郵便表部品1を初期化開始する
その位置と大きさを{17,360,600,204}に変える
その列見出し高さを18に変える
その移動順を2に変える
郵便表部品1を初期化終了する
ボタン1というボタンを作る
その位置と大きさを{218,327,66,23}に変える
その内容を「住所検索」に変える
その移動順を1に変える
ラベル2というラベルを作る
その位置と大きさを{17,117,35,12}に変える
その内容を「住所1」に変える
その移動順を11に変える
テキスト1というテキストを作る
その位置と大きさを{76,114,384,19}に変える
その移動順を12に変える
テキスト2というテキストを作る
その位置と大きさを{76,150,384,19}に変える
その移動順を13に変える
ラベル3というラベルを作る
その位置と大きさを{17,157,35,12}に変える
その内容を「住所2」に変える
その移動順を14に変える
終わり

//検索するボタンが押された時の手順
ボタン1がクリックされた時の手順
ws01=郵便テキスト1の内容 //入力した内容を検索する変数にコピーします

データを、取得する
終わり

データを、取得する時の手順
ーーデータの取得
SQLiteへ接続する         // データベースを占有しないようにここで接続する
// 郵便番号テーブルからword_searchをAND条件で検索します。
例外監視
SQLiteから「SELECT * FROM zip where ken like “%[ws01]%” or city like “%[ws01]%” or machi like “%[ws01]%”;」をデータ表として取得してデータとする
発生した場合
監視終わり
SQLiteから切断する      // データベースを占有しないようにここで切断する

データの名前は、「郵便番号」
郵便表部品1のデータ表をデータに変える
列一覧は、郵便表部品1の列一覧     //表部品の列名を変える為に取得する
列一覧(1)の見出しは、「郵便番号」
列一覧(1)の幅は、60
列一覧(2)の見出しは、「都道府県」
列一覧(2)の幅は、70
列一覧(3)の見出しは、「市町村」
列一覧(3)の幅は、120
列一覧(4)の見出しは、「町域」
列一覧(4)の幅は、290
終わり

郵便表部品1のセルがクリックされた時の手順

テキスト0の内容は、郵便表部品1の選択セルの内容
ws01=テキスト0の内容

ーークリックされた郵便番号を元に住所を検索します。zip1= “[ws01]が検索キーワードとなります。

ーーデータの取得
SQLiteへ接続する         // データベースを占有しないようにここで接続する
例外監視
// 郵便番号テーブルからword_searchをAND条件で検索します。
SQLiteから「SELECT ken,city,machi FROM zip where zip1= “[ws01]” ;」を取得して結果とする
発生した場合
監視終わり
SQLiteから切断する      // データベースを占有しないようにここで切断する

ーー得られた結果の内容を繋げてテキスト1に表示します。

//住所A=結果の内容
住所A=結果(1,1)&結果(1,2)&結果(1,3)

//住所を表示
テキスト1の内容を住所Aに変える

終わり
終わり
—————————— ここまで

投稿者:

こきりこ

その辺に居る、ダメなおじさんです

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください