ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

クレジットカードのキャンペーンとリボ払いの落とし穴

leave a comment »

クレジットカードを取得するとき「新規ご入会キャンペーン」といった特典がもらえる場合がある。しかし何らかの特典がもらえるには、それなりの見返りが必要である。まれに、まったく何もせず入会するだけでギフトカードなどの特典をもらえる場合もあるが、たいていは何カ月以内に一定の金額の利用が必要とされているだろう。このとき気をつけなければならないのは「リボ払い」だ。

IMG_2841_mid_640_480

※写真は本文と関係ありません。

「リボ払い」というのは、毎月の支払いを一定額に抑え、額を超えた分は翌月支払いにまわし、金利がつく、という支払い方法だ。これは支払額を毎月一定に抑えることで支払いに苦労することはなくなるが、翌月回しになる支払いについては手数料として金利を上乗せした払わなければならない。ここでの金利だが、たとえば銀行にお金を預けるとき、銀行から支払われる金利は現在どのくらいの相場であるかといえば、郵貯銀行の郵便預金で1年間の定額預金金利が 0.035 %、三井住友銀行のスーパー定期預金で1年間の金利が 0.025 %だ。一方、住宅ローンで銀行からお金を借りるとき、郵貯銀行の「フラット35」の返済期間20年以内、融資率9割以内で年利 1.580 %、三井住友銀行の超長期固定金利型で20年以内が 2.24 %だ。

銀行などの金融機関は、集めるお金に対する金利は小さく、貸し出すお金の金利は大きく設定することで利益を得る。これが 0.025 %や 0.035 %と、1.58 %や2.24 %の違いになる。ではリボ払いの金利はいくらなのか。

IMG_2842_mid_640_480

※写真は本文と関係ありません。

クレジット会社によって違いはあるが、おおよそリボ払いの金利は年 10 ~ 15 %である。これは住宅ローン金利の 5倍から 10倍くらいの金利だ。この金利が適用されるのは、基本的に毎月の返済額の上限を超えた、翌月以降に繰り越される支払いに対してなので、いくら使ったのかと同時に、毎月の返済額上限はいくらなのかが重要になる。

加入するクレジットカード会社の様々なシステムの違いがあり正確な総返済額の計算は難しいが、利用額、毎月返済額、金利、からシミュレーションできるサイトを JCCA 日本クレジットカード協会が作っている。仮にリボで10万円利用し、月々の支払金額が5,000円、実質年利が 15 %だとしよう。シミュレーションでは総支払額が 111,841円となった。

http://www.jcca-office.gr.jp/consumer/revolving/
JCCA 日本クレジットカード協会

リボ払いの計算_mid_640_480

JCCA 日本クレジットカード協会のページによるシミュレーション

「新規ご入会キャンペーン」といった特典があるときに気をつけなければならないことは、それが「リボ払い専用カード」になっていることがあり、そのことがわかりにくくなっていることである。高額の特典が目についてクレジットカードを申し込むと、リボ払いという意識なく会員契約されてしまうことがある。

たとえばクレジットカードに新規に加入し、3か月以内に10万円利用すれば7,000円のギフトカードがもらえる、といったキャンペーンがある。10万円の利用で7,000円も特典を受けられるなら結構なことだ、と思うかもしれないが、いざカードを申し込むとリボ払い専用カードで、自動的にすべてリボ払いになり、しかも当初の設定が月5,000円の支払い額となっている。そのまま10万円の買い物をすると、仮に7,000円のギフトカードはもらえても、支払総額は111,841円、つまり手数料に1万円以上とられることになるかもしれない。

IMG_2843_mid_640_480

※写真は本文と関係ありません。

リボ払いであっても、月あたりの支払額上限を変更することができる。しかし10万円以上利用すれば、といったキャンペーンのクレジットカードのリボ払い月額上限が、最大5万円であったりする。増額しようとおもってもできない仕組みになっている。

クレジットカードの会員になったら、まず自分が契約した内容を正確に理解し、必要ならばリボ払いをやめる、月あたりの支払額を増額する、ショッピング利用枠を下げる、などの手続きをしよう。また不正利用を防ぐため、キャッシング利用枠を下げたり無効にすることも考えたい。またショッピングの利用枠とは別に割賦枠の制限を下げることもできる。よくわからずに「得になりそう」という直感だけで手を出さないようにしたい。

つまりは「この世においしい話はない」ことを常識と思っておくことだろう。コンピュータやインターネットが普及し、このような様々な金融サービスが身近になった現在、教科「情報」でもこのようなことを正確に知識として教え、正しい判断ができる態度を身に付けさせたい。

Written by Yoshio Matsumoto

2014年10月5日 at 2:10 PM

ポケモンカードゲームはフェアでない

leave a comment »

子供が好きなので一緒にやっているが、ポケモンカードゲームはつくづくフェアではない。ゲームと名のつくものは一定のルールがあり、共通普遍のルールの中で競い合うものではないか。しかしポケモンカードゲームは違う。新しいカードが出るたびにルールが変わる。カードにルールが書いてあるからだ。しかも使えるカードが平等でない。カードは自由に選択できず、欲しいカードが出るまで何が入っているかわからない拡張パックを買い続けなければならない。

IMG_2804_mid_640_480

これはたとえば将棋ならば、飛車も角もないプレイヤーと、飛車と角が4駒ずつ持っているプレイヤーが戦うことに等しいのではないか。あるいは飛車と角と桂馬と香の全部の動きをもっているスペシャルな駒があって、金を出せばその駒が買える、といったことに等しいとも言えないか。これがフェアでないと思う理由だ。

しかし考えてみれば、実際の世の中では完全にスタートラインが同じであったり、一定の共通ルールが決まっている争いなどないともいえる。スポーツであっても、全く平等な条件などないのではないか。テニスやゴルフなど使う道具に違いがあるし、マラソンでもシューズによって違いが出るだろう。水泳ではウエアの素材開発にしのぎを削っているようだ。受験、就職試験、企業間の競争、戦争などまったくそうだろう。最新の武器をつぎ込む経済力。そしてルールは勝者が決めると言っていい。

だからこそ、将棋や碁、チェスのような普遍の共通ルールに基づくゲームは美しい。だからポケモンカードゲームも拡張パックを買いあさってレアなカードを手にすることに血道をあげるのではなく、両者が同じ構築デッキを使って対戦するのがいい。そうでなければ自由に好きなカードを買えるようにするべきだ。

世のポケモンカード好きのために、そう、言いたい。

Written by Yoshio Matsumoto

2014年9月28日 at 12:09 PM

カテゴリー: 未分類

Tagged with ,

郵便番号データを SQL Server で利用するには(1) – SQL Server 2012 Management Studio でデータ変換サービス DTS を使って CSV データを SQL Server に取り込む

leave a comment »

データ変換サービス DTS はSQL Server 2000 の頃からよく使っていた。Excel や Access 、CSV 形式のテキストファイルなどを SQL Server にウィザードで取り込むことができる便利なツールだ。だが DTS は無償版の SQL Server 2012 Management Studio のメニューからは利用できない。

SQLSV_MS_2012_DTS_003_mid_640

<Fig.1 : SQL Server 2012 Management Studio の「ツール」メニューからはデータ変換サービス DTS が使えない>

データ変換サービス DTS を利用するには、Windowsのスタートメニューで Microsoft SQL Server 2012 から「データのインポートおよびエクスポート」を実行するか、以下のフォルダにある DTSWizard.exe を直接実行する。フォルダ名はインストールしている SQL Server や Management Studio のバージョンによって異なる場合もある。

C:\Program Files\Microsoft SQL Server\110\DTS\Binn

SQLSV_MS_2012_DTS_004_mid_640

<Fig.2 : Windowsのスタートメニューから「データのインポートおよびエクスポート」を実行する>

SQLSV_MS_2012_DTS_005

<Fig.3 : C ドライブの Program Files フォルダから直接 DTS ウィザード DTSWizard.exe を起動する>

データ変換サービス DTS を起動する前に、日本郵便の Web ページから最新の郵便番号データをダウンロードしておく。データは CSV 形式で、ZIP 形式の圧縮になっている。ファイルをダウンロードし、適当なフォルダに保存して展開しておく。展開すると次のように KEN_ALL.CSV というファイルができる。これは全国の郵便番号を一括でダウンロードしたファイルだ。

ちなみにこのファイルは、Excel をインストールしているコンピュータなら下のように Excel との関連付けがされており、ダブルクリックすると Excel で開くことができる。しかし Excel のバージョンや保存形式によって最大行数の制約を受けることがあるので、くれぐれも上書き保存しないように。うっかり上書き保存するとデータが切り捨てられてしまう場合がある。

SQLSV_MS_2012_DTS_006_mid_640

<Fig.4 : 日本郵便の Web サイトから郵便番号データをダウンロードする>

SQLSV_MS_2012_DTS_007

<Fig.5 : 日本郵便からダウンロードした ZIP 圧縮形式の郵便番号データを解凍した>

郵便番号データの準備ができたら、データ変換サービス DTS を起動する。次の起動画面が表示されるだろう。

SQLSV_MS_2012_DTS_008

<Fig.6 : データ変換サービス DTS を起動する>

「次へ」をクリックしてウィザードをすすめると「データソースの選択」画面になる。ここでは CSV 形式のテキストファイルを読み込みたいので、「データソース」を「フラットファイルソース」にし、先に保存した郵便番号の CSV ファイルを「ファイル名」のところで「参照」ボタンをクリックして選択する。

「ロケール」と「コードページ」には文字コード体系がデフォルトで設定されているはずだ。「形式」では「テキスト修飾子」がデフォルトで<なし>になっているが、この郵便番号ファイルはテキストデータをダブルクォーテーション「”」で囲んでいるので、「テキスト修飾子」に「”」を入力する。またデータにフィールド名はないので「先頭データ行を列名として使用する」のチェックを外す。

SQLSV_MS_2012_DTS_009

<Fig.7 : データ変換サービス DTS でデータソースの選択をする>

左側の「データソース」で「全般」から「列」のビューに切り替えると、データをプレビューで確認できる。

SQLSV_MS_2012_DTS_010

<Fig.8 : データ変換サービス DTS のデータソースの選択で「列」のビューに切り替える>

次に左側の「データソース」で「全般」から「詳細設定」のビューに切り替える。ここで重要なのは、OutputColumnWidth の設定で、この値を読み込むデータの最大サイズ以上に指定しておかなければならない。

そこであらかじめ Excel で郵便番号データの各フィールドの要素と最大データ長を調べておく。フィールドの要素は次のようになっている。

列0 : 何かの管理番号(最大5桁の数字)
列1 : 郵便番号の前から3~5桁を切り取った数値
列2 : 郵便番号(7桁の数字)
列3 : 都道府県の半角カナ(最大文字長7)
列4 : 市区町村の半角カナ(最大文字長22)
列5 : 市区町村以降の半角カナ(最大文字長73)
列6 : 都道府県(漢字、最大文字長4)
列7 : 市区町村(漢字、最大文字長10)
列8 : 市区町村以降(漢字、最大文字長37)
列9~14 : 住所データを管理する何らかの記号(1桁の数値)

デフォルトで OutputColumnWidth の値は50に設定されている。ここで問題になるのは、列5の半角カナ73文字と列8の漢字37文字だ。漢字は2バイト文字なので、文字数の2倍、74以上のサイズを必要とする。そこでこの2つのフィールドは、それぞれサイズを増やしておかなければならない。

SQLSV_MS_2012_DTS_011

<Fig.9 : データ変換サービス DTS のデータソースの選択で「詳細設定」のビューに切り替える>

あらかじめデータの最大サイズがわかっていれば手作業でOutputColumnWidth の値を変更するが、わからないときは「型の推測」ボタンをクリックし、実際のデータをスキャンして自動的に調べることもできる。

SQLSV_MS_2012_DTS_012

<Fig.10 : データ変換サービス DTS で列の型の推測をする>

SQLSV_MS_2012_DTS_013

<Fig.11 : データ変換サービス DTS で型の推測をした>

ここまでで入力データの設定ができた。次は変換先の設定をする。変換先はデフォルトの SQL Server Native Client とし、サーバー名をドロップダウンで選択する。そしてデータベースをデータをインポートしたいデータベースに変更する。

SQLSV_MS_2012_DTS_014

<Fig.9 : データ変換サービス DTS で変換先を選択する>

次の「コピー元のテーブルおよびビューを選択」では、元データとインポートするテーブルとのデータマッピングを編集することができる。「マッピングの編集」ボタンをクリックする。

SQLSV_MS_2012_DTS_015

<Fig.10 : データ変換サービス DTS でコピー元のテーブルおよびビューを選択する>

「列マッピング」のビューでは、変換元と変換先のフィールド名、フィールドの型、サイズが自動的に設定されている。設定値は「型の推測」で元データから得られたものだ。

SQLSV_MS_2012_DTS_016

<Fig.11 : データ変換サービス DTS で列マッピングを編集する>

「型の推測」で列0から列2までは数字と判断されている。SQL Server でどのような処理をしたいかによるが、数字であってもコードとして処理したい場合は、文字列にしたほうが扱いやすい場合がある。また住所のデータは varchar ではなく nvarchar にしたい。そこで型やサイズを手作業で変更する。

SQLSV_MS_2012_DTS_017

<Fig.12 : データ変換サービス DTS で変換先の型とサイズを編集する>

またデフォルトで「変換先テーブルを作成する」のラジオボタンが選択されており、SQL Server に新しくテーブルを作成することができるが、「SQL の編集」ボタンをクリックすると「テーブル作成 SQL ステートメント」のウィンドウが表示され、SQL Server に生成するテーブルのテーブル名やフィールド名を編集することができる。テーブル名を「郵便番号住所」とし、各フィールド名を設定する。

SQLSV_MS_2012_DTS_018

<Fig.13 : テーブル作成 SQL ステートメントを編集する>

テーブル作成 SQL ステートメントの編集を終了すると「列マッピング」のビューに戻る。このビューに戻っても「変換先」のフィールド名は変わらず「列 0」や「列 1」といったデフォルトのままであるので、手作業で「変換先」のフィールド名を書き換える。ドロップダウンリストには表示されないので、手作業で書き換える必要がある。

SQLSV_MS_2012_DTS_019

<Fig.14 : データ変換サービス DTS の列マッピングで変換先のフィールド名を編集する>

列マッピングの編集が終わると「コピー元のテーブルおよびビューを選択」画面に戻る。このときも戻ったときは「変換先」のテーブル名がデフォルトで与えられたままなので、「テーブル作成 SQL ステートメント」で変更したテーブル名に手作業で書き換える必要がある。

SQLSV_MS_2012_DTS_020

<Fig.15 : データ変換サービス DTS のコピー元のテーブルおよびビューを選択で変換先のテーブル名を書き換える>

次に「データ型マッピングの確認」になる。変換先のテーブル名やフィールド名、データの型やサイズを変更したので、データの切り捨てなどがおこる可能性があるとの注意がされるが、間違いがなければこのまま次にすすめてよい。

SQLSV_MS_2012_DTS_021

<Fig.16 : データ変換サービス DTS でデータ型マッピングの確認をする>

ここまでで設定は終了し、最後の「パッケージの実行」では、いますぐ実行したい場合は「すぐに実行する」のチェックボックスを入れたままにし、次へすすむ。

SQLSV_MS_2012_DTS_022

<Fig.17 : データ変換サービス DTS でパッケージの実行をする>

SQLSV_MS_2012_DTS_023

<Fig.18 : データ変換サービス DTS でウィザードを完了する>

ウィザードを完了すると、データ変換サービス DTS が変換元のデータを読みとり、SQL Server に送信する。変換のプロセスがわかり、レポートが表示される。

SQLSV_MS_2012_DTS_024

<Fig.19 : データ変換サービス DTS で変換プロセスとレポートを表示する>

SQL Server Management Studio でテーブルとデータを確認する。すべてのデータが変換されたかどうかは、ビューを作って確かめる。

——————————————————————-

SELECT COUNT(*) AS Expr1 FROM dbo.郵便番号住所

——————————————————————-

SQLSV_MS_2012_DTS_025_mid_640

<Fig.20 : SQL Server Management Studio でテーブルとデータを確認する>

SQLSV_MS_2012_DTS_026_mid_640

<Fig.21 : SQL Server Management Studio でデータの件数を確認する>

データ変換サービス DTS では、変換元のフィールドサイズの最大サイズがわかっていれば手作業で OutputColumnWidth の値を変更し、わからなければ「列の型の推測」でデータサイズを調べ、自動的に適用させればよい。その場合は、変換先のフィールドが設定したい型やサイズにならない場合があるので、そのときは手作業で編集する。

データ変換サービス DTS でエラーがおこったときは、まずフィールドサイズが OutputColumnWidth の設定値を超えていないかを確認しよう。

片手間プログラマーの復権 – Visual Studio 2013でクライアントサーバー型データベースアプリケーションをあっというまに作る(5) – 「検索条件ビルダー」を使ってキーワードによる「部分一致」検索をノンコードで実装する

with one comment

前回の記事で「片手間プログラマーの復権 – Visual Studio 2013でクライアントサーバー型データベースアプリケーションをあっというまに作る(4) – 「検索条件ビルダー」を使ってキーワードによる「前方一致」、「後方一致」、「部分一致」検索を実装する」を紹介した。今回は「条件検索ビルダー」を使ってノンコードで「部分一致」を実装する手順を紹介する。Visual Studio 2013 で「検索条件ビルダー」を使えば、一行もコードを書く必要はない。

Visual Studio 2013 を起動し、C#の Windows Form アプリケーションの新しいプロジェクトを作成する。データ接続は「データソース構成ウィザード」で SQL Server のテーブルに接続しておく。データソースを構成したら、接続先のテーブルを画面にドラッグしてデータグリッドビューを作成する。ここまでの手順は、前回までの記事を参考にしてほしい。

部分一致_001_mid_640

<Fig.1 : データソース構成ウィザードで SQL Server に接続するデータグリッドビューを作成した>

生徒BindingSource または生徒TableAdapter、あるいはデータグリッドビューを選択して右上に表示される「スマートタグ」の小さな三角アイコン▲をクリックし「クエリの追加」をする。

部分一致_003_mid_640

<Fig.2 : バインディングソースのスマートタグから「クエリの追加」を行う>

「条件検索ビルダー」が起動するので、クエリテキストを次のように変更する。

——————————————————————-
SELECT 学籍番号, 氏名, クラス, 住所, 性別, 性別コード FROM dbo.生徒
WHERE 氏名 LIKE ‘%’ + @SelectNamePartial + ‘%’
——————————————————————-

SQL 文では文字列をシングルクォーテーションで挟む。パラメータクエリのパラメータの前後に、シングルクォーテーションで挟んだ「%」の文字列を加えると、部分一致のクエリになる。

部分一致_004

<Fig.3 : 「条件検索ビルダー」でクエリテキストを編集する>

「検索条件ビルダー」を終了すると、フォームに fillByToolStrip が生成している。これだけで、この検索は、部分一致になっている。

部分一致_005_mid_640

<Fig.4 : 「条件検索ビルダー」を終了すると fillByToolStrip が生成している>

部分一致のクエリを実装するにはこれだけでいい。ビルドして動作を確認する。

部分一致_006_mid_640

<Fig.5 : ビルドして部分一致を確認する>

このように「検索条件ビルダー」のクエリさえ記述すれば、部分一致の検索フォームをノンコードで作ることができる。検索条件ビルダーを活用して、データベース接続アプリケーションを簡単に作ろう。

<前の記事>
片手間プログラマーの復権 – Visual Studio 2013でクライアントサーバー型データベースアプリケーションをあっというまに作る(4) – 「検索条件ビルダー」を使ってキーワードによる「前方一致」、「後方一致」、「部分一致」検索を実装する

片手間プログラマーの復権 – Visual Studio 2013でクライアントサーバー型データベースアプリケーションをあっというまに作る(4) – 「検索条件ビルダー」を使ってキーワードによる「前方一致」、「後方一致」、「部分一致」検索を実装する

with 4 comments

Microsoft Visual Studio 2013 を使えば、ノンコードで SQL Server に接続するデータベースアプリケーションを作ることができることを紹介した。前回「片手間プログラマーの復権 – Visual Studio 2013でクライアントサーバー型データベースアプリケーションをあっというまに作る(3) – 「検索条件ビルダー」を使ってキーワードによる選択クエリをノンコードで実装する」では、全文一致検索によってデータを絞り込むアプリケーションは「条件検索ビルダー」でノンコードで実装できることを紹介した。今回は、キーワードの「完全一致」ではなく、「前方一致」あるいは「後方一致」、「部分一致」で検索するフォームを作ってみよう。「前方一致」あるいは「後方一致」、「部分一致」を「条件検索ビルダー」を使って実装するには、SQL 文を LIKE 演算子で構成するとよい。

Visual Studio 2013 を起動し、新しいプロジェクトを作成する。言語はC#として Windows Form フォームアプリケーションを作ろう。

前方一致後方一致_001_mid_640

<Fig.1 : Visual Studio 2013 で Windows Form アプリケーションを作る新しいプロジェクトを始める>

次にデータ接続を作成しよう。画面の右端「データソース」タブを展開し、「新しいデータソースを追加」する。データソースの構成は「データソース構成ウィザード」で画面に従ってすすめる。説明は省略するが、画面ショットだけ紹介しよう。

前方一致後方一致_002_mid_640

<Fig.2 : 「データソース」タブを展開し「新しいデータソースの追加」をクリックして「データソース構成ウィザード」をはじめる>

前方一致後方一致_003_mid_640

<Fig.3 : 「データソース構成ウィザード」でデータソースの種類を選択する>

前方一致後方一致_004_mid_640

<Fig.4 : 「データソース構成ウィザード」でデータベースモデルを選択する>

前方一致後方一致_005_mid_640

<Fig.5 : 「データソース構成ウィザード」でデータ接続を選択する>

前方一致後方一致_006_mid_640

<Fig.6 : 「データソース構成ウィザード」で接続文字列をアプリケーション構成ファイルに保存する>

前方一致後方一致_007_mid_640

<Fig.7 : 「データソース構成ウィザード」でデータベースオブジェクトを選択する>

「データソース構成ウィザード」を終了すると、データソースに接続先の SQL Server のテーブルが表示される。「生徒」テーブルをデザインビューのフォームへドラッグし、データグリッドビューを作成しよう。データグリッドビューを作成したら、すべてのフィールドが表示されるようにデータグリッドビューを右に広げよう。

前方一致後方一致_008_mid_640

<Fig.8 : 「データソース構成ウィザード」でデータソースが構成できた>

前方一致後方一致_009_mid_640

<Fig.9 : 構成したデータソースから「生徒」テーブルをフォームにドラッグしてデータグリッドビューを作成する>

データグリッドビューが生成すると同時に、データ接続に関するオブジェクトが5つ生成する。データセット、バインディングソース、テーブルアダプター、テーブルアダプタマネージャー、そしてバインディングナビゲーターだ。このうち、生徒BindingSource または生徒TableAdapter、あるいはデータグリッドビューを選択して右上に表示される「スマートタグ」の小さな三角アイコン▲をクリックし「クエリの追加」をする。

前方一致後方一致_010_mid_640

<Fig.9 : スマートタグから「クエリの追加」を行う>

スマートタグから「クエリの追加」を行うと「条件検索ビルダー」ウィンドウが表示される。ここで絞り込む検索条件を次のように LIKE 演算子を使ってクエリテキストを編集しよう。

——————————————————————-
SELECT 学籍番号, 氏名, クラス, 住所, 性別, 性別コード FROM dbo.生徒
WHERE 氏名 LIKE @SelectNameLike
——————————————————————-

前方一致後方一致_011

<Fig.10 : スマートタグから「クエリの追加」を行い「条件検索ビルダー」を起動する>

前方一致後方一致_012

<Fig.11 : 「条件検索ビルダー」でクエリテキストを編集する>

クエリを設定するとフォームに fillByToolStrip が自動的に生成する。次にフォーム上にテキストボックスとボタンを作成し、ボタンのテキストを「前方一致」とする。そしてボタンのクリックイベントに次のコードを書く。SQL 文では「%」が任意の文字列をあらわすのだ。

——————————————————————-
try
    {
    this.生徒TableAdapter.FillBy(this.mYSQLSVDataSet.生徒, textBox1.Text + "%");
    }
catch (System.Exception ex)
    {
    System.Windows.Forms.MessageBox.Show(ex.Message);
    }
——————————————————————-

前方一致後方一致_013_mid_640

<Fig.12 : フォームにテキストボックスと「前方一致」のボタンを作る>

前方一致後方一致_014_mid_640

<Fig.13 : 「前方一致」ボタンのクリックイベントにコードを書く>

同様に「後方一致」と「部分一致」、「全件取得」のボタンを作成する。ボタンのクリックイベントにそれぞれ次のコードを書く。

<「後方一致」ボタンのクリックイベント>
——————————————————————-
try
    {
    this.生徒TableAdapter.FillBy(this.mYSQLSVDataSet.生徒, "%" + textBox1.Text);
    }
catch (System.Exception ex)
    {
    System.Windows.Forms.MessageBox.Show(ex.Message);
    }
——————————————————————-

<「部分一致」ボタンのクリックイベント>
——————————————————————-
try
    {
    this.生徒TableAdapter.FillBy(this.mYSQLSVDataSet.生徒, "%" + textBox1.Text + "%");
    }
catch (System.Exception ex)
    {
    System.Windows.Forms.MessageBox.Show(ex.Message);
    }
——————————————————————-

<「全件取得」ボタンのクリックイベント>
——————————————————————-
try
    {
    this.生徒TableAdapter.Fill(this.mYSQLSVDataSet.生徒);
    }
catch (System.Exception ex)
    {
    System.Windows.Forms.MessageBox.Show(ex.Message);
    }
——————————————————————-

前方一致後方一致_015_mid_640

<Fig.14 : 「後方一致」、「部分一致」、「全件取得」ボタンを作りクリックイベントにコードを書く>

ビルドしてテキストボックスに入力し、絞り込み検索を確かめる。

前方一致後方一致_016_mid_640

<Fig.15 : アプリケーションをビルドして「後方一致」、「部分一致」、「全件取得」の動作を確かめる>

このように前方一致、後方一致または部分一致のフォームを作るには、検索条件ビルダーで SQL 文を LIKE 演算子で絞り込むこととし、fillBy メソッドの文字列に SQL 文で任意の文字列を示す「%」を加えるといい。

<前の記事>
片手間プログラマーの復権 – Visual Studio 2013でクライアントサーバー型データベースアプリケーションをあっというまに作る(3) – 「検索条件ビルダー」を使ってキーワードによる選択クエリをノンコードで実装する

<次の記事>
片手間プログラマーの復権 – Visual Studio 2013でクライアントサーバー型データベースアプリケーションをあっというまに作る(5) – 「検索条件ビルダー」を使ってキーワードによる「部分一致」検索をノンコードで実装する

SQL Server に接続した InfoPath フォームのデータ接続を手作業で変更する – 繰り返しテーブルのデザインを生かすため、繰り返しテーブルのバインドを保持したまま接続するテーブルやビューを変更する

leave a comment »

InfoPath はデータ接続を SQL Server にすることができ、SQL Server に対するクライアントアプリケーションとして利用することができる。Visual Studio を使ってアプリケーションを開発することが簡単になったとはいえ、データベースアプリケーションを作るのは、やはり、それなりに難しい。そこでクライアントに InfoPath を使うメリットがある。

InfoPath は SQL Server へのデータ接続をウィザードで構成することができ、一行もコードを書かずにクライアントアプリケーションにすることができる。また InfoPath フォームに繰り返しテーブルを作ると、簡単にデータ接続にバインドできる。このとき、繰り返しテーブルの列幅やコントロールの変更、コントロールのプロパティ変更、条件付き書式、動作規則などを設定した後で、データ接続を変更したいことがある。データ元のテーブルやビューを切り替えたい場合だ。

いちど構成したデータ接続は、ウィザードでいつでも変更することができる。しかしウィザードでデータ接続を変更すると、デザインされた繰り返しテーブルとデータ接続の関連付けが壊れ、もう一度繰り返しテーブルのデザインをやり直さなければならなくなる場合がある。繰り返しテーブルの関連付けが壊れると、フィールドに赤の「×」が表示される。

blog_講座一覧_010_mid_640

<Fig.1 : デザインされた繰り返しテーブルをもつフォームのデータ接続を変更して関連付けが壊れた>

手間をかけてデザインした繰り返しテーブルは、できればそのまま使いたい。このとき、次のようにデータ接続の SQL 文を手作業で変更すると、データ接続と繰り返しテーブルの関連付けを壊すことなく接続元の SQL Server のテーブルやビューを変更することができる。

データ接続ウィザードを起動してデータ接続の編集をする。あらかじめ設定されたデータ接続を表示し、接続する SQL Server のフィールドが表示されたら「SQL の編集」ボタンをクリックして SQL 文を直接編集する。

blog_講座一覧_001_edit_mid_640

<Fig.2 : データ接続ウィザードでデータソースを編集する>

「SQL の変種」をクリックすると、設定された SQL Server へ接続する SQL 文が表示される。ここで接続先のテーブルまたはビューの名前だけを変更する。

ここでは、もともと「v_講座一覧」というビューに接続していたが、表示したいフィールドを増やした新しいビュー「v_テスト用の講座一覧」というビューに変更している。

blog_講座一覧_004

<Fig.3 : 変更する前のデータ接続の SQL 文>

blog_講座一覧_006

<Fig.4 : 変更後のデータ接続の SQL 文>

SQL 文を変更すると、変更したテーブルまたはビューのフィールドがデータ接続ウィザードに表示される。追加したい必要なフィールドにチェックを入れる。

blog_講座一覧_014_mid_640

<Fig.5 : 接続先を変更したビューのフィールドが表示される>

blog_講座一覧_015_mid_640

<Fig.6 : 表示したいフィールドにチェックを入れる>

データ接続の編集を終わってフォームのデザインに戻ると、繰り返しテーブルにエラーは表示されず、テーブルとデータ接続のバインドが保持され、壊れていないことがわかる。あとは繰り返しテーブルに列を追加し、新たに接続したフィールドを構成すればいい。

blog_講座一覧_016_mid_640

<Fig.7 : 繰り返しフィールドとデータ接続のバインドは保持され、必要なフィールドを追加する>

InfoPath の特徴は、データ接続をウィザードで簡単に構成することができ、繰り返しテーブルの項目も単なるテキストボックスからドロップダウンリストボックス、チェックボックス、ラジオボタンなどに簡単に変更することができること、また条件付き書式や動作規則で表示を変えたり、データを変更したときに動作をさせたりする設定ができることだ。しかし使いやすいフォームを構成するには、繰り返しテーブルの要素を、それなりの手間と時間をかけて編集することになる。繰り返しテーブルを構成した後でデータ接続を変更し、せっかく時間をかけてデザインした繰り返しテーブルのバインドが壊れて使えなくなってしまうのはもったいない。データ接続の SQL 文をうまく編集して、時間と手間をかけて作った繰り返しテーブルのデザインが活かせるようにしよう。

秋月電子通商が販売するKm2Net Inc.のディジタルUSBインタフェース Km2Net USB-IO2.0(AKI)を試す

leave a comment »

Km2Net USB-IO2.0(AKI)はKm2Net Inc.のディジタルUSBインタフェースで秋月電子通商が販売している。これは汎用ディジタル入出力12ピンを持ち、USB-2.0接続、動作電力はUSBから供給するので独自電源不要、600milソケット対応なのでブレッドボードでの実験がしやすい、HIDデバイスとして認識されるのでドライバが不要、Visual Studio による VB のサンプルプログラムが添付されている、などの特徴がある。

IMG_2645_mid_640_480

<Fig.1 : Km2Net USB-IO2.0(AKI) のパッケージをあけたところ>

パッケージには Km2Net USB-IO2.1(AKI) の本体と、600mil 対応のピンが入っている。使うには工作が必要だ。まずはこれらのピンを Km2Net USB-IO2.1(AKI) の本体にはんだ付けしよう。

IMG_2646_mid_640_480

<Fig.2 : Km2Net USB-IO2.1(AKI) の本体と 600mil 対応のピン>

添付のピンのうち、L字型に曲がったピンは6列だが、Km2Net USB-IO2.1(AKI) の本体には5列のピン穴がある。ペンチかニッパーでピンを1列外そう。

IMG_2647_mid_640_480

<Fig.3 : L字型のピンを1列外す>

また Km2Net USB-IO2.1(AKI) の本体には両側にディジタル入出力のピン穴がそれぞれ7列ずつあるので、添付のピンを切り離し7列のピンを2つ作ろう。

IMG_2648_mid_640_480

<Fig.4 : 7列のピンを2つ作る>

切り離した7列のピンをブレッドボードに挿してみる。これを本体にはんだ付けするのだが、ピンが曲がってブレッドボードに挿せなくなることも考えられるので、このままはんだ付けすることにする。

IMG_2649_mid_640_480

<Fig.4 : 7列のピンをブレッドボードに挿してみる>

IMG_2650_mid_640_480

<Fig.5 : ブレッドボードに挿した7列ピンの上に Km2Net USB-IO2.1(AKI) の本体を乗せる>

この状態ではんだ付けをすると、熱でブレッドボードが痛む可能性がある。はんだ付けは手早く、確実にしよう。

IMG_2651_mid_640_480

<Fig.6 : Km2Net USB-IO2.1(AKI) の本体に7列ピンをはんだ付けした>

次に5列のL字型ピンをはんだ付けする。これは基板裏側からのはんだづけになる。

IMG_2654_mid_640_480

<Fig.7 : Km2Net USB-IO2.1(AKI) の本体に5列のL字型ピンをはんだ付けする>

Km2Net USB-IO2.1(AKI) の本体には Visual Studio のサンプルプログラムがついている。言語は Visual Basic だ。本体をブレッドボードに取り付け、J1-0入力に LED を取り付ける。Visual Studio を起動し、サンプルプログラムを動かす。

Km2Net_002

<Fig.8 : Km2Net USB-IO2.1(AKI) のサンプルプログラムを起動する>

「入出力状態」の左端「0」をクリックすると接続した LED が点いたり消えたりする。

IMG_2655_mid_640_480

<Fig.9 : Km2Net USB-IO2.1(AKI) のJ1-0に取り付けた LED が消えている>

Km2Net_001

<Fig.10 : Km2Net USB-IO2.1(AKI) のサンプルプログラムを起動して左端の「0」をクリックして赤色に変える>

IMG_2656_mid_640_480

<Fig.11 : Km2Net USB-IO2.1(AKI) のJ1-0に取り付けた LED が点いた>

このように、実に簡単にUSBインタフェースを使えることがわかった。これを使って様々なディジタルデバイスをコンピュータからコントロールできるだろう。

フォロー

新しい投稿をメールで受信しましょう。

現在1,416人フォロワーがいます。