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

InfoPath & SQL Server !

HMV ONLINEとタワーレコードオンラインにみるe-コマースあるいはネットショッピングを支える配達と決済システム

leave a comment »

狭義には、インターネットを利用したいわゆる「ネットショッピング」あるいは「e-コマース」は、商品販売という一連の過程における「受発注システム」にすぎない。実際に「ネットショッピング」において商品販売が完結するためには、次の3つの仕組みが必要である。

1.商品と金額の提示、発注(注文)、受注の仕組み・・・Webサイトなどのインターネット技術
2.商品を顧客に届ける仕組み・・・宅配便など配達システム
3.代金を支払う仕組み・・・クレジットカードなど決済システム

インターネットが各家庭に普及し、ネットショッピングが広がる以前にも、テレビショッピングやカタログ販売など、実際の店舗を持たずに販売を行うシステムはあった。また宅配便が普及する以前にも郵便の小包はあったし、決済も直接現金を手渡す以外に銀行振り込みなどの間接的な支払方法はあった。しかし、今日のようにネットショッピングが普及した背景には、それが次のような特徴を持っていたからである。

1.使いやすさ、わかりやすさ
2.安全性、確実性
3.速さ
4.安価であること

消費者はインターネットを利用してWebサイトで商品の説明を吟味し、最も気に入った商品を安く注文する。大量生産された同じ商品であれば、だれもが1円でも安いところから買うだろう。インターネットは価格比較がしやすく、消費者にとってはありがたいが、販売側にとっては常に価格比較の対象となる厳しい世界といえる。Webシステムの技術は日進月歩で使いやすくわかりやすくなっている。注文すれば電子メールで受注確認の知らせが届き、Webサイトで発注記録を確認し、配送状況もリアルタイムでわかる。確実だ。速さはどうか。もちろん大量販売品で、近くの店に行けば店頭で買えるようなものは別にして、販売店を介して発注したり店舗に取り寄せたりということよりも、ネットショッピングの方が速く手に入るだろう。宅配便の送料は安く、決済もクレジットカードを使えば多くの場合手数料は無料だ。

だが、現状よりもさらに「安全」で「安価」なネットショッピングを実現する仕組みが「HMV ONLINE」と「タワーレコードオンライン」にある。

「タワーレコードオンライン」にあるのは、セブンイレブンと提携した「セブンイレブン前払い」だ。これは商品を注文し、宅配便での受け取り方法を指定した後、支払いをセブンイレブンの店舗で行うものだ。商品をWebサイトで注文すると、商品が揃って発送の準備が整うと、電子メールで支払いの案内がくる。そこでセブンイレブンに行き、メールに記載された支払票の番号を提示して支払いをする。支払が完了すれば発送処理が行われる。支払いはどのセブンイレブンでもよく、現金だけでなくクレジットカードや電子マネー「nanaco」が利用できる。支払いのためにコンビニへ行かなければいけない、という手間がかかるようだが、これの何がよいかといえば、パソコン上でWebサイトにクレジットカードの番号を入力しなくても、手数料の不要なクレジット決済ができるところだ。

Webサイトの信頼性も高くなり、ユーザーのパソコンもウィルス対策がされているとはいえ、やはりインターネット経由でWebサイトにクレジットカードの番号を入力することに抵抗がある人はいるだろう。また企業のデータベースからクレジットカードの番号や顧客情報が流出するという事件、事故の例もある。そこで「セブンイレブン前払い」のように、Webサイトでクレジットカードを使わなくてもクレジットカード決済ができるシステムは安全性が高い。

「HMV ONLINE」には、ローソンと提携した「コンビニ受け取り」サービスがある。通常のネットショッピングでも、たとえば3,000円以上お買い上げなど、一定の料金以上の支払いがあれば宅急便の料金を無料にするなどのサービスがある。しかし「コンビニ受け取り」サービスを利用すれば、商品の支払い総額にかかわららず家の近くのコンビニまで無料で届けてくれる。このコンビニを利用した配送システムは「タワーレコードオンライン」にもあるが、「HMV ONLINE」は中古CDも販売しており、200円、300円といった中古CDの支払いでも「コンビニ受け取り」なら無料で配送してもらえる。

中古品の販売は、たとえばAmazonにもあるが、ほとんどの場合が1商品あたりの配送料を必要とする。仮に中古CDが200円でも、配送料が加算されると350円程度の配送料が必要となり、結果として550円の価格になってしまう。

というように、「HMV ONLINE」と「タワーレコードオンライン」が「セブンイレブン」や「ローソン」と提携して行うネットショッピングの仕組みは、「受発注」に加えて「配送」、「決済」の観点から、より安全に、安価にネットショッピングを実現する仕組みであるといえる。

今夜のビール – OLD SPECKLED HEN 缶入り 330 ml

leave a comment »

英国ビールである。最近は国産で「よなよなエール」や「インドの青鬼」などヤッホー・ブルー・インクの素晴らしいビールがスーパーなどで手に入るので英国ビールからしばらく遠ざかっていたが、神戸で輸入食品店を新たにみつけたこともあり、ふたたび英国ビールにこだわっている。

IMG_7462_mid_640_480

このビールも輸入元はコルドンヴェール株式会社だ。缶に貼られた日本語の説明は、こう、ある。「イギリスのスポーツカーブランドMGの50周年を記念して造られたビール。トフィーのようなモルトのフレーバーと甘さのバランスが絶妙。」MGはもともと「モーリス・ガレージ(Morris Garages )を略したものだそうで、現在は中国上海汽車の傘下になっているらしい。1910年頃から1924年にかけて、主に小型スポーツカーのメーカーとして、イギリスのオックスフォードで確立したそうだが、すぐにアビンドン(Abingdon)に本拠を移したそうだ。また発祥年については諸説あるらしいが、MG社の広報誌には1923年が発祥年とされているそうだ。ということは、MG社の50周年を記念した、ということは、このオールド・スペックルド・ヘンの発祥は1973年ということになる。

IMG_7467_mid_640_480

「トフィーのような」と形容されているが、確かに香ばしい香りがある。トフィーはバターや小麦粉、糖蜜、砂糖を加熱して作ったお菓子だが、しかしトフィーに形容されるほど濃厚でもなく、適度な飲みやすさのビールだ。夏の暑い日でも喉の渇きを癒してくれるだろう。

IMG_7463_mid_640_480

缶に記されたアルコール度数は5.2%。昔の日本のビールは4%程度だったと記憶しているが、最近は5%程度のものがあたりまえになった。切れ味を特徴としているアサヒのスーパードライは5%だが、最近は「スーパードライ・エクストラシャープ」が5.5%、「スーパードライ・プレミアム」が6%と、アルコール度数をあげた国産ビールも多い。アルコール度数も味に大きく影響するが、5.2%というのは最も一般的なアルコール度数といえるのではないか。その点でも飲みやすいビールである。

国産ビールのように、どこのスーパーでも手に入る、という訳ではないが、輸入食品店を探せば比較的手に入りやすいのではないか。缶入り、330ml。

IMG_7468_mid_640_480

Written by Yoshio Matsumoto

2015年5月8日 at 1:45 AM

Access で年賀状のあて名印刷をするコツ

leave a comment »

この時期、1年間使わなかった年賀状印刷ソフトを久しぶりに起動し、印刷に四苦八苦というところも多いだろう。ところが年に1回しかつかわないソフトの使い方は、どうしても忘れてしまいがちになるのではないか。また今年中にプリンタや周辺機器を買い替えてアプリケーションが対応しなくなったり、もしかしたら昨今のことだから、家に何台もあるパソコンのうち、どれにソフトをインストールしてあったか忘れてしまっている、といったこともあるかもしれない。またそれが調子が悪くて捨ててしまっていた、といったこともあるだろう。

年賀状を印刷するには、いわゆる「宛名印刷ソフト」というものを使う人が多いだろうが、宛名印刷ほど Access に得意な分野はない。そこで、住所データをアクセスにインポートし、宛名印刷をするコツを紹介する。ここでは Microsoft Office Access 2007 で説明するが、他のバージョンでもほぼ同じだ。

まず住所データを用意する。もし宛名印刷ソフトを使っているならデータが取り出せるはずだ。宛名印刷ソフトからデータをエクスポートすると、たとえばこのようなデータになる。これはCSV 形式のデータで、ファイルのフォーマットはテキストファイルと同じ扱いになっている。宛名印刷ソフトによってはエクセル形式でデータを取り出せるものもあるだろうし、データがなければエクセルで作ってもいいだろう。

Access年賀状_001 

<fig.1 : ある宛名印刷ソフトからエクスポートした住所データ>

これを Access にインポートする。まず Access を起動したら「空のデータベース」を作成する。作成する場所は「ドキュメント」で、ファイル名は「年賀状印刷」とでもしておこう。

Access年賀状_002_mid_640

<fig.2 : Access を起動して「空のデータベース」を作成する>

Access年賀状_003_mid_640

<fig.3 : Access のファイル名を「年賀状印刷」として作成する>

Access が起動し、テーブルのデザイン画面になったら、テーブルは作らなくてよいので保存しないで閉じる。次にメニューから「外部データ」のタブを開き、「テキストファイルのインポート」をクリックする。もし用意した住所データがエクセルの場合は「Excel ワークシートのインポート」をクリックする。

Access年賀状_004_mid_640

<fig.4 : テキストファイルのインポートをする>

テキストファイルのインポートを実行すると、インポートするデータを指定するように求められるので、CSV のテキストファイルを保存した「ドキュメント」を指定して、ファイルを選択する。

Access年賀状_005_mid_640

<fig.5 : インポートするテキストファイルを指定する>

Access年賀状_006_mid_640

<Fig.6 : インポートするテキストファイルを保存した「ドキュメント」フォルダからファイル名を選択する>

ファイル名を指定したら「テキストインポートウィザード」がはじまる。このウィザードでは、データの形式を自動で読み取り、適切な形式に判断してくれるので、基本的には「次へ」の連続でうまくいく。ただ、郵便番号のフィールドは、場合によっては数値と判断される場合があるので、テキストになっていることを確認しよう。もし数値と判断されてしまったら、たとえば番号の最初の数字が「0」の場合、その「0」が失われて桁が小さくなるし、後でやる「郵便番号の前と後ろの切り離し」がやりにくくなる。

Access年賀状_007_mid_640

<fig.7 : テキストインポートウィザードでデータ区切りを指定する>

Access年賀状_008_mid_640

<fig.8 : データインポートウィザードでテキストの保存形態を確認する>

Access年賀状_009_mid_640

<fig.9 : データインポートウィザードでデータの型を確認する>

データの型、特に郵便番号のフィールドが「数値」ではなく「テキスト」になっていることを確認し、次へすすむと主キーの設定になる。ここでは「主キーを自動的に設定する」にして連番を自動で割り当てることとする。

Access年賀状_010_mid_640

<fig.10 : テキストインポートウィザードで主キーを自動的に設定する>

インポートウィザードが終了すると、インポートしたデータのテーブル名を指定する。ここでは自動的に割り当てられた「住所エクスポート」のままでいいだろう。

Access年賀状_011_mid_640

<fig.11 : テキストインポートウィザードでインポート先のテーブル名を指定する>

インポートウィザードを終了すると、このインポート操作を保存するかを聞かれる。もし何度も同じ操作をする可能性があるなら保存をするが、このような場合は保存しなくていいだろう。

Access年賀状_012_mid_640

<fig.12 : テキストインポートウイザードでインポート操作の保存ができる>

データのインポートができた。このままではフィールド名がわかりにくいので、テーブルをデザインしてフィールド名を「宛名」、「郵便番号」、「住所」に変えよう。

Access年賀状_013_mid_640

<fig.13 : 住所データがインポートできた>

Access年賀状_014_mid_640_480

<fig.14 : テーブルをデザインビューにしてフィールド名を変更する>

Access年賀状_015_mid_640

<fig.15 : テーブルをデザインビューにしてフィールドを「宛名」、「郵便番号」、「住所」に変更する>

Access年賀状_016_mid_640

<fig.16 : 「住所エクスポート」テーブルのフィールド名を変更した>

次に、このテーブルをもとにして、はがきの宛名印刷に使いやすいデータをクエリで加工する。「作成」タブの「クエリデザイン」で新しいクエリを作成しよう。クエリを作成すると、どのテーブルのデータからデータを取得するかを選択する。ここでは「郵便番号住所」のデータしかないので、それだけが選択できる。

Access年賀状_017_mid_640

<fig.17 : 「作成」タブの「クエリデザイン」で新しいクエリを作成する>

Access年賀状_018_mid_640

<fig.18 : クエリデザインでテーブルを選択する>

Access年賀状_019_mid_640

<fig.19 : 新しいクエリにテーブルが関連付けられた>

新しいクエリにテーブル「住所エクスポート」が関連付けられたら、表示するフィールドを選んでいく。ここで単にフィールドを「宛名」、「郵便番号」、「住所」と選択してもいいが、後で印刷画面のレポートを作りやすくするために、フィールドを少し加工しよう。

宛名には「様」を付けたいので、全角スペースをひとつ挟んで「様」を表示するようにする。郵便番号は前の 3桁と後ろの 4桁を分離する。住所はそのままでいいだろう。このように表示するには、「フィールド」を次のように記述する。

———————————

宛名様: [宛名] & " " & "様"
郵便番号前: Left([郵便番号],3)
郵便番号後: Right([郵便番号],4)
住所

———————————

まず最初のフィールドに「宛名様」とするのは、フィールドの別名だ。そのあとに「:」をはさんで表示するデータを記述する。「&」は文字列をつなぐ演算子で、” ”は全角のスペースをひとつ挟んでおり、次の「&」で”様”の文字をつないでいる。

次のフィールドの別名は「郵便番号前」とし、「:」ではさんで Left([郵便番号],3) とするのは、「郵便番号」のフィールドのデータを左から、つまり前から3文字だけ表示する関数だ。同様に次のフィールドは別名を「郵便番号後」とし、「:」ではさんで Right([郵便番号],4) としている。これは「郵便番号」のフィールドのデータを右から、つまり後から4文字だけ表示する関数だ。これで郵便番号の前と後ろを別のフィールドで表示し、区別できる。

「住所」フィールドはそのまま使えばよいだろう。

Access年賀状_020_mid_640

<fig.20 : 表示するフィールドの式を記述する>

フィールドの式が記述できたらクエリを保存する。「印刷用クエリ」の名前にしよう。

Access年賀状_021_mid_640

<fig.21 : クエリを保存する>

クエリが保存できたらデータを確認しよう。宛名にはスペースをはさんで「様」が、郵便番号は前 3桁と後 4桁が別フィールドで分離されて表示されているはずだ。

Access年賀状_022_mid_640

<fig.22 : 「印刷用クエリ」のデータを確認する>

次に印刷用のレポートを作成する。「作成」タブから「レポートデザイン」で空白のレポートを作成する。空白のレポートでは自動的に「ページヘッダー」と「ページフッター」ができるが、年賀状印刷にヘッダーやフッターは必要ないので削除する。ヘッダーとフッターを削除するには、

Access年賀状_023_mid_640

<fig.23 : 「作成」タブから「レポート」「レポートデザイン」で新しい空白のレポートを作成する>

Access年賀状_024_mid_640

<fig.24 : レポートの「ページヘッダー」と「ページフッター」を削除する>

次にレポートに対してデータを割りつける。レポートのビューでは、左上の「■」をポイントするとレポート全体を選択したことになるので、その状態で「プロパティシート」から「データ」タブの「レコードソース」をクリックして関連付けるテーブルまたはクエリを選択する。ここでは「印刷用クエリ」を選択する。

Access年賀状_025_mid_640

<fig.25 : レポートに対してレコードソースを割り当てる>

次にレポートにフィールドを追加する。「デザイン」タブから「既存のフィールドの追加」をクリックすると、レポートに関連付けられた「印刷用クエリ」の各フィールドを選択できるので、レポートにドラッグしてフィールドを追加する。

あるいは「デザイン」タブの「コントロール」から「テキストボックス」をレポートにドラッグし、後でフィールドのデータを関連付けてもいいだろう。

フィールドを画面に追加すると、フィールド名のラベルも同時にできるが、必要ないので削除する。

Access年賀状_026_mid_640

<fig.26 : レポートにフィールドを追加する>

Access年賀状_027_mid_640

<fig.27 : 不要なラベルを削除した>

次に、1ページごとに改ページされる設定をする。それには「詳細」のセクションを選択したまま「プロパティシート」で「改ページ」を「カレントセクションの前」に変更する。これで 1レコードずつ改ページされて印刷されるようになる。

Access年賀状_028_mid_640

<fig.28 : 「詳細」セクションを改ページするように設定する>

後は用紙のサイズを「はがき」にし、各フィールドのフォントや文字の大きさ、位置を調節するだけだ。フォントは、郵便番号は「MS Pゴシック」に、住所と宛名は「HG教科書体」がおすすめだ。文字の大きさは「郵便番号前」を 16ポイント、「郵便番号後」を 14ポイント、「住所」を 12ポイント、「宛名様」を 22ポイントとしてみた。

レポートデザインのコツとして、印刷の余白はできるだけ小さくしておくことがある。「郵便番号前」と「郵便番号後」のフィールドは、年賀はがきの郵便番号枠に収まるようにするために「文字配置」を「均等割り付け」にするとよい。また住所のフィールドは、長い住所もあるので大きめにしておき、さらに切手印刷に重ならないようにレイアウトする。「宛名様」のフィールドはハガキの中央に収まるように「文字配置」を「中央」にするとよいだろう。

Access年賀状_029_mid_640

<fig.29 : フィールドの文字フォントと文字の大きさを設定する>

「印刷プレビュー」でおおまかなレイアウトを確かめながらデザインする。だいたいのレイアウトができたら、A4サイズの用紙を 4つに切って葉書大にし、印刷する。印刷した紙を年賀葉書に重ねて位置を確認する。プリンタによって印刷する位置に違いがあるので、ここは何度かやってみながら調節するしかない。

Access年賀状_030_mid_640

<fig.30 : 「印刷プレビュー」でレイアウトを確認する>

IMG_4099_mid_640_480

<fig.31 : 普通の紙に印刷して年賀葉書に重ねて位置を確かめる>

おおむね位置があえば、年賀葉書をプリンタにセットして印刷する。ここでも一度に印刷せず、何枚か試し印刷をし、郵便番号の位置などレイアウトがうまく印刷されるか確認しながらしよう。最終調整だ。あっていなければフィールドサイズを変えたり、フィールドの位置を動かしたりしてベストの位置に修正しよう。

IMG_4098_mid_640_480

<fig.32 : 郵便番号の位置を確認しながら印刷する>

このように説明すると手間がかかるようだが、Access がある程度わかっているなら簡単だ。住所データさえあれば 15分もあれば印刷できる状態まで作れるだろう。

作業手順とコツをまとめると次のようになる。

(1)データをインポートする。このとき郵便番号を数値にせずテキストでインポートする。
(2)データをそのまま使わず、宛名を「様」付きにしたり郵便番号を前と後ろに分けるクエリを作る。
(3)レポートを作ってクエリを割り当てる。ページのヘッダーとフッターを削除し、詳細セクションを改ページする。
(4)フィールドの大きさやフォント、文字の大きさをレイアウトする。文字位置を「均等割り付け」や「中央」で工夫する。
(5)試し印刷を念入りにして、文字の大きさや郵便番号の位置を丁寧にあわせる。

Access は複数ページにわたる帳票印刷が得意だ。これは葉書印刷にも活かせるので、ぜひ Access で年賀状印刷をやって欲しい。そしてこの年賀状印刷のコツは他の帳票印刷でも使えるはずだ。

Written by Yoshio Matsumoto

2014年12月30日 at 1:05 PM

ブレッドボードで電子回路の実験をするために乾電池ホルダーのリード線をジャンパワイヤのように端子化する

leave a comment »

ブレッドボードで電子回路の実験をするときに、乾電池ホルダーを使うことがある。市販の工作用乾電池ホルダーはリード線がついているが、末端は処理されていないことが多い。より線をねじったままでブレッドボードに挿すことはできないことはないが、何度も挿したり抜いたりするうちに先端がぼろぼろになってくる。ブレッドボードで使うにはリード線の端をジャンパワイヤのように端子化するといいだろう。

IMG_4072_mid_640_480

<Fig.1 : 市販の工作用乾電池ホルダー>

IMG_4073_mid_640_480

<Fig.2 : 市販の工作用乾電池ホルダーのリード線はより線で末端は処理されていない>

末端を端子化するために、すずメッキ線を使う。ブレッドボードの電子回路でよく使われるのは、22AWG のものである。AWG はアメリカンワイヤーゲージ、米国ワイヤーゲージ規格のことで、22AWG の太さは直径 0.0253 インチ、約0.644 ミリである。そこで直径 0.6 mm のすずメッキ線を使う。少し大きなホームセンターなどで売っているはずだ。

IMG_4082_mid_640_480

<Fig.3 : 直径 0.6 mm のすずメッキ線>

すずメッキ線をリード線の端にはんだ付けするだけでは持ちにくいし、リード線とすずメッキ線の接続部分が折れやすくなる。そこではんだ付けした後、熱収縮チューブをかぶせて保護する。すずメッキ線と熱収縮チューブは適当な長さに切っておく。

IMG_4074_mid_640_480

<Fig.4 : すずメッキ線と熱収縮チューブをあらかじめ切っておく>

まずリード線のより線をすずメッキ線の端に巻きつける。

IMG_4075_mid_640_480

<Fig.5 : リード線をすずメッキ線の端に巻きつける>

リード線を巻きつけたところをはんだ付けする。少し多めにはんだをのせると持ちやすくなるし熱収縮チューブも抜けにくくなる。

IMG_4076_mid_640_480

<Fig.5 : すずメッキ線をはんだ付けした>

はんだ付けした部分に熱収縮チューブをかぶせる。

IMG_4077_mid_640_480

<Fig.6 : はんだ付けした部分に熱収縮チューブをかぶせる>

熱収縮チューブを加熱するには、はんだごての軸を使おう。加熱しすぎないように加減して。

IMG_4078_mid_640_480

<Fig.7 : 熱収縮チューブをはんだごての軸で加熱する>

IMG_4079_mid_640_480

<Fig.8 : 熱収縮チューブを加熱した>

熱収縮チューブを加熱した。はんだ付けの部分やリード線の向きが曲がっていたら真っ直ぐに修正しよう。プラスの赤線とマイナスの黒線の両方を処理する。

IMG_4080_mid_640_480

<Fig.9 : 赤と黒のリード線を両方とも端末処理した>

これでブレッドボードで使いやすくなった。

IMG_4081_mid_640_480

<Fig.10 : リード線を端末処理した乾電池ボックスをブレッドボードで使う>

郵便番号データを SQL Server で利用するには(2) – データ変換サービス DTS を使わず Access を利用してデータを SQL Server に取り込む

leave a comment »

SQL Server に Excel や Access、CSV形式などのテキストファイルを取り込むために、データ変換サービス、DTS がある。だがデータ変換サービスはデータ型に厳密であるなど、実際の運用においては使いにくい面もある。そこでデータ変換サービス DTS を使わず、Access を利用してデータを SQL Server に取り込むことを紹介する。Access を使うと、取り込みたいデータを確認しながら作業ができるので、データ型やフィールドサイズが不明の場合でも対応しやすい。

ここで SQL Server に取り込みたいデータが、日本郵便からダウンロードできる全国郵便番号であるとする。郵便番号データのダウンロードについては、前回の blog を参考にしてほしい。

 

ダウンロードした csv データファイルを Access に取り込むため、まず Access を起動して空のデータベースを作成する。ここで使用した Access のバージョンは Microsoft Office Access 2007 だが、違うバージョンでもうまくいくはずだ。Access データベースファイルを作成する場所はローカルコンピュータのドキュメントなど適当な場所でいい。

SQL_DTS_Access_001_mid_640

<Fig.1 : Microsoft Office Access 2007 を起動して空のデータベースを作成する。

空のデータベースを作成したら、リボンメニューの「外部データ」から「テキストファイルのインポート」を実行する。日本郵便からダウンロードしたデータが、csv 形式のテキストファイルだからだ。

SQL_DTS_Access_002_mid_640

<Fig.2 : 「外部データ」メニューの「テキストファイルのインポート」を実行する>

データのインポートはウイザードに従ってすすめる。「データのインポート元とインポート先、またはリンク元とリンク先の選択」でデータをインポートする郵便番号ファイルを選択し、データの保存方法は「現在のデータベースの新しいテーブルにソースデータをインポートする」を選ぶ。

SQL_DTS_Access_003_mid_640

<Fig.3 : データのインポート元とインポート先、またはリンク元とリンク先の選択>

ファイルを指定したら読み込むデータが表示されるので、データの区切り形式を選択する。データの区切りは「区切り記号付き」を選ぶ。

SQL_DTS_Access_004_mid_640

<Fig.4 : データインポートウィザードでデータの区切り形式を選択する>

次にフィールド区切り記号を選択する。フィールド区切り記号は「カンマ」を指定する。また「先頭行をフィールド名として使う」オプションは、読み込まれたデータを見てフィールド名に相当するデータがないので、チェックを外す。

SQL_DTS_Access_005_mid_640

<Fig.5 : フィールド区切り記号の選択と先頭行をフィールド名として使うかの選択>

次に読み込むフィールドのフィールド名や型を設定する。Access が読み取ったデータからフィールドの型を類推して決めてくれるが、郵便番号は数値として判断される場合がある。確かに郵便番号は数値なのだが、数値として読み取った場合は先頭のゼロが無視されてしまうので、郵便番号のフィールドは「テキスト型」に変更しておく。

SQL_DTS_Access_006_mid_640

<Fig.6 : フィールドのオプションを設定する>

主キーの設定では、ここでインポートするデータの主キーが不明であるので、「主キーを自動的に設定する」を選んでおく。こうすれば自動的に「ID」のフィールドが作られ、連番が与えられる。

SQL_DTS_Access_007_mid_640

<Fig.7 : 主キーの設定>

インポートウィザードの最終場面では、インポート先のテーブル名を記述する。ここではファイル名から自動的に割り当てられた「KEN_ALL」の名前とした。

SQL_DTS_Access_008_mid_640

<Fig.8 : インポート先のテーブルの指定>

インポートが完了したら、「インポート操作の保存」の画面になる。同じインポート操作を後で繰り返したい場合は、ここで「インポート操作の保存」にチェックをしておくと、簡単に再現できる。ここでは繰り返ししないつもりなので、チェックをしないでおく。

SQL_DTS_Access_009_mid_640

<Fig.9 : インポート操作の保存>

インポートウィザードが終わったら、インポートデータは新たに生成した「KEN_ALL」テーブルに保存されている。テーブルの下部にはレコード数が 123,708 件であることがわかる。

SQL_DTS_Access_010_mid_640

<Fig.10 : インポートウィザードを終了しデータをインポートした>

読み込んだ「KEN_ALL」テーブルのデータを見ると、フィールド1 は意味がよくわからない何らかの管理番号になっているようだ。フィールド2 は郵便番号の前部分、フィールド3 は郵便番号の全6桁、フィールド4 からフィールド6 が住所の読み仮名、フィールド7 からフィールド9 が住所になっている。フィールド10 から15 は何らかの管理フラグだ。

データ構造がわかったら、これに相当するテーブルを SQL Server に作る。CREATE 文は次のようなものとした。

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

CREATE TABLE 郵便番号住所2(
    管理番号 int NULL,
    プレ郵便番号 varchar(7) NULL,
    郵便番号 char(7) NULL,
    都道府県カナ nvarchar(7) NULL,
    市区町村カナ nvarchar(25) NULL,
    住所それ以降カナ nvarchar(80) NULL,
    都道府県 nvarchar(10) NULL,
    市区町村 nvarchar(25) NULL,
    住所それ以降 nvarchar(80) NULL,
    管理フラグ1 char(1) NULL,
    管理フラグ2 char(1) NULL,
    管理フラグ3 char(1) NULL,
    管理フラグ4 char(1) NULL,
    管理フラグ5 char(1) NULL,
    管理フラグ6 char(1) NULL
)

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

SQL_DTS_Access_011_mid_640

<Fig.11 : SQL Server Management Studio で郵便番号住所をストアするテーブルを作る>

次に Access を SQL Server のテーブルに「リンクテーブル」として接続する。リボンメニューの「外部データ」から「その他」をクリックし「ODBC データベース」を実行する。

SQL_DTS_Access_012_mid_640

<Fig.12 : リボンメニューの「外部データ」から「その他」をクリックし「ODBC データベース」を実行する

外部データの取り込みウィザードがはじまる。日本郵便のサイトからダウンロードした csv のテキストファイルは Access に取り込んだが、ここでは SQL Server のテーブルにリンクするために「リンクテーブルを作成してソースデータにリンクする」を選択する。

SQL_DTS_Access_013_mid_640

<Fig.13 : 外部データの取り込みウィザードでリンクテーブルを作成してソースデータにリンクする>

「データソースの選択」では、適切な SQL Server へのデータソースがあれば選択するだけでいいが、なければ新規作成する。DNS 名のところの「新規作成」ボタンをクリックする。

SQL_DTS_Access_014

<Fig.14 : データソースの選択>

セットアップするデータソースのドライバーを選択する。接続したい SQL Server を選択して「次へ」をクリックする。

SQL_DTS_Access_015

<Fig.15 : セットアップするデータソースのドライバーを選択する>

データソース名を決めて入力する。データソース名は、後で見てわかるような、適当な名前でいい。

SQL_DTS_Access_016

<Fig.16 : データソース名を決めて入力する>

データソースが作成される。「完了」をクリックする。

SQL_DTS_Access_017

<Fig.17 : データソースの作成>

接続する SQL Server を選択する。「サーバー」テキストボックスの右端▼をクリックすると、利用できる SQL Server が選択できるので、テーブルを作成した SQL Server を選択して「次へ」をクリックする。

SQL_DTS_Access_018

<Fig.18 : 接続する SQL Server を選択する>

SQL Server のログイン認証を選択する。「ネットワークへのログイン ID で、Windows NT の認証メカニズムを使う」はいわゆるWindows 統合認証で、「ユーザーが入力する SQL Server 用のログイン ID とパスワードを使う」は SQL Server にユーザーを作ってログインするものだ。作業している環境によるが、ここでは前者のログインで利用するものとする。

SQL_DTS_Access_019

<Fig.19 : SQL Server のログイン認証を選択する>

既定のデータベースを設定する。郵便番号住所テーブルを作成したデータベース名は「test」だったので、それを選択する。

SQL_DTS_Access_020

<Fig.20 : 既定のデータベースを設定する>

これでデータソースの作成を完了する。

SQL_DTS_Access_021

<Fig.21 : データソースの作成を完了する>

データソースが作成されたら、データソースの詳細が表示される。ここで「データソースのテスト」をクリックすると、SQL Server に接続テストをすることができる。

SQL_DTS_Access_022

<Fig.22 : データソースの作成完了とテスト>

データソースの接続テストが成功した。

SQL_DTS_Access_023

<Fig.23 : SQL Server へのデータソースの接続テスト>

データ接続ができたら、リンクしたいテーブルを指定する。ここでは「郵便番号住所2」テーブルに接続したい。

SQL_DTS_Access_024

<Fig.24 : テーブルのリンク>

リンクテーブルが作成できた。リンクテーブルは地球のようなアイコンで、画面の左側「すべてのテーブル」に「dbo.郵便番号住所2」の名前で表示されている。このテーブルは Access 上に実体はなく、SQL Server のテーブルにリンクしている。

SQL_DTS_Access_025_mid_640

<Fig.25 : リンクテーブルの作成完了>

リンクテーブル「dbo.郵便番号住所2」を開くと、SQL Server 上のデータを見ることができる。まだデータは入っていないので、一件もデータがない。

SQL_DTS_Access_026_mid_640

<Fig.26 : リンクテーブル「dbo.郵便番号住所2」を開いてデータを確かめる>

リンクテーブルが作成できたら、Access にインポートしたデータを、リンクテーブル「dbo.郵便番号2」へコピーする。Access でテーブルへデータをコピーするとき、簡単なのは「追加クエリ」を作成することだ。

「新しいクエリ」を作成し、テーブル「KEN_ALL」を元データとする。画面に表示された「KEN_ALL」テーブルの各フィールドを下段にドラッグし、表示させる。

SQL_DTS_Access_027_mid_640

<Fig.27 : 新しいクエリを作りフィールドを表示させる>

次にこのクエリを「追加クエリ」にする。Access では SQL 文を使ってデータを追加することもできるが、単純にテーブルからテーブルへデータを追加する場合は、追加クエリを使うと便利だ。

クエリを追加クエリにするには、クエリの編集画面で「デザイン」メニューの「+!」のアイコン、「追加」をクリックする。すると「追加」のウインドウが表示され、追加先のテーブルを選択するようになる。追加先はリンクテーブル「dbo.郵便番号2」を選択する。

SQL_DTS_Access_028_mid_640

<Fig.28 : クエリを追加クエリにする>

SQL_DTS_Access_029_mid_640

<Fig.29 : 追加クエリの設定で追加先のテーブルを選択する>

dbo.郵便番号2」をクエリを追加クエリにすると、画面の下部に表示されたフィールドの下の項目が変わる。単なる選択クエリの場合は、「フィールド」、「テーブル」、「並べ替え」、「表示」、「抽出条件」、「または」となっているが、追加クエリにすると「表示」の項目はなくなり、かわりに「レコードの追加」が表示される。これは、データを追加するテーブルのどのフィールドに追加するかを選択する項目だ。各フィールドの「レコードの追加」クリックすると、追加先に設定した「dbo.郵便番号2」の各フィールドが表示されるので、追加したい適切なフィールドを選択し決定していく。追加しなくてもよいフィールドは指定しなくていい。

ここで作成した SQL Server の「dbo.郵便番号2」の場合、「KEN_ALL」テーブルの各フィールドに対して、「ID」を「管理番号」に、「フィールド1」は指定せず、「フィールド2」を「プレ郵便番号」に、以降、フィールド3から「郵便番号」以降を順に設定する。

SQL_DTS_Access_030_mid_640

<Fig.30 : クエリを追加クエリにした>

SQL_DTS_Access_031_mid_640

<Fig.31 : 追加クエリの各フィールドに追加先のフィールドを設定する>

追加クエリができたら保存する。クエリ名は「郵便番号住所の追加」とした。

SQL_DTS_Access_032_mid_640

<Fig.32 : 追加クエリを保存する>

追加クエリが保存できたら、「すべてのテーブル」にあるクエリの名前「郵便番号住所の追加」をダブルクリックする。「追加クエリを実行すると、テーブルのデータが変更されます」となるので「はい」をクリックする。次に追加されるデータの件数が表示されるので、間違いなければ「はい」をクリックする。

SQL_DTS_Access_033_mid_640

<Fig.33 : 保存した追加クエリ「郵便番号住所の追加」をダブルクリックして実行する>

SQL_DTS_Access_034_mid_640

<Fig.34 : 追加クエリを実行してテーブルにデータを追加する>

SQL_DTS_Access_035_mid_640

<Fig.35 : 追加されるデータの件数が表示される>

この追加クエリは、SQL の INSERT 文になっている。SQL 文を確かめるには、追加クエリをデザインし「SQL ビュー」にするといい。次のような SQL 文が生成していることがわかる。

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

INSERT INTO dbo_郵便番号住所2 ( 管理番号, プレ郵便番号, 郵便番号, 都道府県カナ
              , 市区町村カナ, 住所それ以降カナ, 都道府県, 市区町村, 住所それ以降
              , 管理フラグ1, 管理フラグ2, 管理フラグ3, 管理フラグ4, 管理フラグ5, 管理フラグ6 )
SELECT KEN_ALL.ID, KEN_ALL.フィールド2, KEN_ALL.フィールド3, KEN_ALL.フィールド4
              , KEN_ALL.フィールド5, KEN_ALL.フィールド6, KEN_ALL.フィールド7, KEN_ALL.フィールド8
              , KEN_ALL.フィールド9, KEN_ALL.フィールド10, KEN_ALL.フィールド11, KEN_ALL.フィールド12
              , KEN_ALL.フィールド13, KEN_ALL.フィールド14, KEN_ALL.フィールド15
FROM KEN_ALL;

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

SQL_DTS_Access_037_mid_640

<Fig.36 : 追加クエリを SQL ビューで確認する>

追加クエリを実行すると、Access にインポートされたデータが SQL Server に追加されているはずだ。「dbo.郵便番号住所2」のリンクテーブルを開いたままなら、一度閉じて再度開くと最新のデータが表示される。

SQL_DTS_Access_038_mid_640

<Fig.37 : 「dbo.郵便番号住所2」のリンクテーブルを開いてインポートされたデータを表示する>

SQL Server Management Studio で直接 SQL Server のテーブルを確かめても、データがインポートされたことが確認できる。

SQL_DTS_Access_039_mid_640

<Fig.38 : SQL Server Management Studio でインポートされたデータを確認する>

このように、Access を使って SQL Server にデータをインポートすることができる。まず Access に CSV データを取り込み、次に「リンクテーブル」で Access を SQL Server に接続し、「追加クエリ」でデータを追加するのだ。

Access の追加クエリは画面上でフィールドを選択することで視覚的にテーブルからテーブルにデータを追加することができるので、SQL Server のデータ処理に使ってもいいだろう。

Microsoft Store Japan でお買いもの – しっかりしたデニム生地で利用範囲の広いトートバッグ

leave a comment »

東京品川のマイクロソフト本社にある Microsoft Store Japan でお買いもの。マイクロソフトのロゴグッズがいろいろあり、品川本社へ行ったときはお土産をここで買うのだが、その中で実用的なものをいくつか紹介している。これはしっかりしたデニム生地で応用範囲が広い、いわゆるトートバッグだ。

IMG_0268_mid_640_480

こんなかんじで、実に普通のトートバッグである。

IMG_0269_mid_640_480

マイクロソフトのロゴも控えめでさりげなくかっこいい。

IMG_0272_mid_640_480

中はこんなかんじ。大小ふたつのポケットがついている。このトートバッグを肩にかけて通勤するのもいいじゃないか。中にはもちろん Surface を入れて。

Written by Yoshio Matsumoto

2014年11月24日 at 1:34 AM

Microsoft Store Japan でお買いもの – マイクロソフトのロゴがかっこいい男性用セカンドバッグ

leave a comment »

東京品川のマイクロソフト本社にある Microsoft Store Japan で買ったセカンドバッグ。合皮だが作りがしっかりしていて、マイクロソフトのロゴもかっこいい。

IMG_0266_mid_640_480

サイズは大きめ。中をあけるとこんなかんじ。カードホルダーやペンホルダー、ファスナー付きのサイドポケットなどがあり、ちょっとした外出ならこれひとつでいい。

IMG_0267_mid_640_480

大きなカバンを持つとついつい不要なものを持ち歩きがちだが、いっそこれだけ、と割り切ると身軽でいい。このセカンドバッグと Surface を片手に通勤、というスタイルでどうだろう。

Written by Yoshio Matsumoto

2014年11月24日 at 1:24 AM

フォロー

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

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