おすすめ本

最近のトラックバック

  • event (夢茶爺&苦茶爺のPC奮戦備忘録)

AccRanking

Ad

« 2016年2月 | メイン | 2016年4月 »

2016年3月

2016年3月26日 (土)

VB.NET:ADO.NETを使用したSQL-ServerのテーブルのCSV出力

ADO.NET を使用した SQL-Server のテーブルをCSVファイルに出力する簡単な関数を作成してみました。

CSVファイルを作成する関数への引数は、データベース名とデータソース名と、SQL文、それとCSVファイル名とCSV内のカラムヘッダを 出力するかのフラグになります。

CSV出力処理関数内では SQL-Server への接続をオープンし、指定されたSELECT文を実行します。 SELECT文の結果の行が在れば、1行づつデータを取得します。 初回の行の処理の場合には、リーダーオブジェクトからカラム名を取得しヘッダ行を書き込みます。 その後、各データ行をCSVファイルに書き込みます。 CSVの各データは強制的にダブルクォートで囲む様にしていますので、 データ内のダブルクォートはエスケープ処理しています。


尚、今回のテーブルは以下の生成文で生成しました。

結果的にCSVファイル内容は以下の様になります。


■関連記事
BCPコマンドでUnicode文字形式を使用したデータのインポート及びエクスポート(SQL Server)について
ADO.NET での DataReader の入れ子エラー
ADO.NET を使用した SQL-Server へのアクセス・クラス
SQL-Serverの自動採番(IDENTITY値)の取得・リセット
SQL-Serverのストアド・ファンクションではUPDATEなどが実行できない
SQL-Serverのユーティリティ(BCPコマンド)を利用したテーブルへのインポート・エキスポート
SQL-Serverのプロシージャ生成のバッチ実行
SQL-Serverの関数・プロシージャのVB.NETでの実行

デル株式会社

楽天市場

2016年3月25日 (金)

EXCEL:CSVファイル読込で、先頭ゼロのデータをそのまま表示させる方法

エクセルでCSVファイルを読込む場合、先頭がゼロのデータが消されてしまい左寄せの様な表示になります。 例えば電場番号や商品コードなどでは、先頭にゼロが存在することは自然なことなので、 ゼロがサプレスされてしまうと不都合が在ります。

以下の様なCSVファイルをエクセルに読込んでみます。

Test1edit


エクセルの結果はやはり先頭ゼロが在りません。

Test1exl



そこで先頭ゼロのカラムデータは値をダブルコーテーションで囲んで先頭に = イコール)を 置いてやります。 以下の様にCSVファイルを変更してやります。

Test2edit


エクセルの結果は先頭ゼロが表示される様になりました。

Test2exl


上図のセルの値からも分かるように、値が ="0012345" とCSVファイルの値そのものになるので 注意が必要です。これをそのまま印刷しても 0012345 とちゃんと表示されます。

たった1日で即戦力になるExcelの教科書【電子書籍】[ 吉田拳 ]

価格: 1,922円
(2016/09/29 14:06時点 )

感想:0件

楽天市場

2016年3月23日 (水)

VB.NET:Spreadのチェックボックス型セルにはCheckChangedイベントを、ボタン型セルにはClickイベントの発生方法

以前のSPREADの以下の記事では、ボタンクリックのイベントとして FpSpread1.ButtonClicked で処理していたため、 ボタンもチェックボックスもボタンイベントとして処理されてしまいました。

■VB.NET:Spreadのセルのボタンクリック時のイベント処理

それで、ボタンはクリックイベントで処理をし、チェックボックスは値が変化したイベントで処理する様にします。
チェックボックス型セルでは編集中のエディタとして FpCheckBox クラスが、 ボタン型セルでは編集中のエディタとして FpButton クラスが使用されます。 それで、それぞれのセルタイプのセルが編集モードに入った時点で、  FpCheckBox  CheckChanged イベントにハンドラを設定し、 さらに FpButton  Click イベントにハンドラを設定します。


下図は、最初、フォームが表示され[Button1]をクリックした時の様子です。

Edit1


その後、Spread上のボタンをクリックした結果が以下の図です。

Edit2


チェックボックスをクリックした結果が以下の図です。

Edit3

■関連記事
VB.NET:SpreadでのEnter時にセルを右移動させる方法
VB.NET:Spreadでフォーカスを持っていない時にセル枠を表示しない設定
VB.NET:Spreadのヘッダカラム及び、通常のカラムの連結
VB.NET:Spreadのシートへの簡単な一覧データの設定について
VB.NET:Spreadのシートのセルにボタン、テキスト、チェックボックスのセルタイプの設定
VB.NET:Spreadのセルのボタンクリック時のイベント処理
VB.NET:Spreadのセルへのデータ設定の描画速度アップ
VB.NET:Spreadのセルのチップウインドウで別に設定された文字列を表示する
VB.NET:Spreadでデータ一覧表示を簡単に行う方法について
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)その2
VB.NET:Spreadデータ一覧表示での自動ソート実行時に複数のソート条件を指定する方法について
VB.NET:Spreadで異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadでのCSV出力とCSV入力を使って、異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadシートのPDF出力と表示を行う方法
VB.NET:2個のSpread間での[Enter]キー、矢印キーなどでフォーカス移動を行う方法
VB.NET:Spreadの数値セルタイプを使ってデータメンテナンスのプログラムに使う方法
VB.NET:Spreadのテキストセルでバイト数入力制限を掛ける方法

Visual Basic 2013逆引き大全 555の極意【電子書籍】[ 増田智明 ]

価格: 2,527円
(2016/09/29 14:32時点 )

感想:0件

デル株式会社


楽天市場

2016年3月22日 (火)

VB.NET:コンボボックスへの項目設定、設定値の取り扱うクラスを作成してみました

標準コントロールのコンボボックス(ComboBox)ですが、このコントロールへの設定値は Items で行います。 フォームのデザイナ上でプロパティウインドウの中から設定してもいいのですが、 今回は Items に設定する項目をクラスとして定義し、 それを指定のコンボボックスに設定するクラスを作成してみました。

 Items に設定できるデータ型は Object 型の配列として宣言されていますので、 クラスの値の配列を設定が可能です。

以下のソースでは、全体のクラス名を ClsCombo として宣言し、 コンボの Items に設定されるデータを ComboItem として宣言しています。
このクラスを使用する場合は、 ComboItem で項目値を配列として宣言し、  ClsCombo のコンストラクタに渡す様にします。


■プロパティ

プロパティ名 内容
ComboDivision 選択区分値(数値)を取得
ComboDivString 選択区分値(文字列)を取得
ComboText 選択区分名(Text)を取得


■メソッド

メソッド名 引数 内容
SetComboSeletedIndex 区分値(Long) 区分値を選択状態に設定
SetComboSeletedIndex 区分値(文字列) 区分値を選択状態に設定



このクラスを使う例として以下のソースを示します。

プライベート変数で今回のクラスの変数と、コンボに設定する項目値の配列を宣言します。 その後、フォームロード時イベントでクラス変数の生成を行い、初期選択値を設定します。

Combo1


ボタンクリック時イベントで選択されている区分値とコンボボックスに表示されているテキスト文字列を クラスより取得し表示しています。

Combo2

Visual Basic 2013逆引き大全 555の極意【電子書籍】[ 増田智明 ]

価格: 2,527円
(2016/09/29 14:32時点 )

感想:0件

デル株式会社


楽天市場

2016年3月19日 (土)

VB.NET:Spreadのテキストセルでバイト数入力制限を掛ける方法

Spreadのテキストセルで入力する文字数をバイト数で制限する方法について、 Shift-JISエンコーディングのバイト配列処理メソッドを使って行います。

バイト数制限というのは、ほぼShift-JISに由来する考え方で、 データベースの文字列定義をShift-JISにしておくと オラクルのVARCHAR2のデータ型でもバイト数制限は必要でした。

以下にソースを示しますが、少し説明します。
最初にフォームロード時に、Shift-JISの文字エンコーディングを生成し、 Spreadの編集モードセルのテキスト変更時イベント処理と、 データモデルに変更時イベント処理を宣言しています。
また、両方のイベントで使う、文字列の最後の漢字の泣き別れを防ぐ関数導入しました。 既に入力された文字が"あいうえ1"の場合に、さらに漢字で"お"と入力されても "お"の文字の前半分が残らない様にしています。
Spreadbyte


最後の「漢字の泣き別れ」処理関数ですが、 上の例で既入力が"あいうえ1"でさらに漢字で"お"と入力した場合は、 2行目の str "あいうえ1・"となり、 最後の文字が漢字の中点になってしまいます。

結果 GetByteCount すると1バイト増えて  nLen よりも必ず大きい値になります。 それでこの場合に、最初にバイト配列化した長さを nLen-1 にして文字列化することで "あいうえ1"となります。

■関連記事
.NET開発テクノロジ入門2016年版Visual Studio 2015対応版
VB.NET:SpreadでのEnter時にセルを右移動させる方法
VB.NET:Spreadでフォーカスを持っていない時にセル枠を表示しない設定
VB.NET:Spreadのヘッダカラム及び、通常のカラムの連結
VB.NET:Spreadのシートへの簡単な一覧データの設定について
VB.NET:Spreadのシートのセルにボタン、テキスト、チェックボックスのセルタイプの設定
VB.NET:Spreadのセルのボタンクリック時のイベント処理
VB.NET:Spreadのセルへのデータ設定の描画速度アップ
VB.NET:Spreadのセルのチップウインドウで別に設定された文字列を表示する
VB.NET:Spreadでデータ一覧表示を簡単に行う方法について
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)その2
VB.NET:Spreadデータ一覧表示での自動ソート実行時に複数のソート条件を指定する方法について
VB.NET:Spreadで異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadでのCSV出力とCSV入力を使って、異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadシートのPDF出力と表示を行う方法
VB.NET:2個のSpread間での[Enter]キー、矢印キーなどでフォーカス移動を行う方法
VB.NET:Spreadの数値セルタイプを使ってデータメンテナンスのプログラムに使う方法
VB.NET:Spreadのチェックボックス型セルにはCheckChangedイベントを、ボタン型セルにはClickイベントの発生方法


デル株式会社
楽天市場

VB.NET:プライマリディスプレイの上でフォームの表示位置設定する方法

今回の記事は、パソコンの画面上で、タスクバーを除いた部分でどの位置に表示するかを制御する簡単なTIPSです。
通常パソコンのディスプレイは1台なのでプライマリディスプレイと言えば表示画面そのものですが、 System.Windows.Forms.Screenクラスのプロパティ PrimaryScreen から画面の情報を取得できます。
 PrimaryScreen プロパティはSystem.Windows.Forms.Screenクラスで以下の様なプロパティを持っています。
プロパティ 内容
BitsPerPixel 1 ピクセルのデータに関連付けられているメモリのビット数を取得
Bounds ディスプレイの範囲を取得
WorkingArea ディスプレイの作業領域を取得。作業領域とは、ディスプレイのデスクトップ領域からタスクバー、ドッキングされたウィンドウ、およびドッキングされたツール バーを除いた部分


画面の表示は以下の様になります。 Form1_2
以下の今回のソースを示しますが、画面中央、左上、右上、左下、右下のラジオボタンをクリックし ボタンをクリックすると、指定位置にフォームが移動します。
タスクバーの領域を除いた部分での画面位置ですので、 WorkingArea プロパティを使います。

この例の関数ですが、仕事で普通に使う場合は、画面中央に表示する場合がほとんどでした。
基礎Visual Basic 2015 基礎シリーズ
デル株式会社

2016年3月18日 (金)

VB.NET:Spreadの数値セルタイプを使ってデータメンテナンスのプログラムに使う方法

マスタのメンテテンス用プログラムとしては、1個のウインドウでいろんな項目を入力するのですが、 基本的には項目名とそれに対応するデータ入力コントロールとしてテキストボックス等を設置します。
このテキストボックスには入力の書式や、キーデータの選択等を自分で組んでやる必要があります。 市販の入力用コントロールを使えばいいのですが、自分で組むと結構大変です。
そこで、SPREADの出番なのですが、SPREAD自身には既に入力コントロールが備わっています。 これを使わない手はありません。SPREADなので表形式になってしまいますが、 この形が許されるのであれば、SPREADを使っていいのではと思います。

SPREADには、数値セルタイプとして CurrencyCellType , NumberCellType がありますが、 今回は NumberCellType を使って数値用のメンテナンスを行う場合を想定した例を紹介します。

画面の表示は以下の様になります。 Num1
以下の今回のソースを示しますが、フォームのロード時に全ての数値セルの CellType を設定しています。 尚、最後のコード的なセルは、通常では編集入力後の表示で先頭ゼロを行う様に、  NumberCellType を拡張したクラスを定義しています。
また、セルの編集時には背景色と文字色を変更して入力を分かりやすくしています。


下図は、「Button1」をクリックした時の表示です。 Num2_2

■SPREADをコントロールを何個も設置

SPREADの表形式が気に入らないのであれば、テキストボックスを何個も設置する様に1セルしかないSPREADを個別に設置し、 それぞれのSPREADのセルにCellTypeを設定してやれば テキストボックス的に使えます。
この方法だと、SPREADコントロールを何個も設置するのでプログラムの動きが重くなるかも しれませんが、意外と使える方法だと思いますが、如何でしょうか?

■関連記事
VB.NET:SpreadでのEnter時にセルを右移動させる方法
VB.NET:Spreadでフォーカスを持っていない時にセル枠を表示しない設定
VB.NET:Spreadのヘッダカラム及び、通常のカラムの連結
VB.NET:Spreadのシートへの簡単な一覧データの設定について
VB.NET:Spreadのシートのセルにボタン、テキスト、チェックボックスのセルタイプの設定
VB.NET:Spreadのセルのボタンクリック時のイベント処理
VB.NET:Spreadのセルへのデータ設定の描画速度アップ
VB.NET:Spreadのセルのチップウインドウで別に設定された文字列を表示する
VB.NET:Spreadでデータ一覧表示を簡単に行う方法について
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)その2
VB.NET:Spreadデータ一覧表示での自動ソート実行時に複数のソート条件を指定する方法について
VB.NET:Spreadで異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadでのCSV出力とCSV入力を使って、異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadシートのPDF出力と表示を行う方法
VB.NET:2個のSpread間での[Enter]キー、矢印キーなどでフォーカス移動を行う方法
VB.NET:Spreadのテキストセルでバイト数入力制限を掛ける方法
VB.NET:Spreadのチェックボックス型セルにはCheckChangedイベントを、ボタン型セルにはClickイベントの発生方法

デル株式会社
楽天市場

Windows7でのデスクトップの表示方法について

以前のWindowsXPでは、クイック起動バーに「デスクトップの表示」アイコンが在ったのですが、 Windows7では無いのかなと思い、今まで探してもみませんでした。

WindowsXPでは、クイック起動バーに「デスクトップの表示」アイコンが無い場合には、 以下のフォルダの中にある、「デスクトップの表示」アイコンをコピーして貼り付けたりしていました。
C:\Documents and Settings\Default User\Application Data\Microsoft\Internet Explorer\Quick Launch

Windows7では画面の右隅の小さいボタンの様なものが「デスクトップの表示」アイコンに該当します。 下の図の赤い枠で囲った部分です。

Desk1


この部分をクリックすれば、開いているウインドウは全て最小化されて、デスクトップ画面が表示されます。 今まで知らずにいたことが恥ずかしい限りです。
デル株式会社

2016年3月17日 (木)

VB.NETのComboBoxに枠線(ボーダー)を表示する様に拡張したクラス(Border/BorderStyle/BorderWidth)

VB.NETの ComboBox には枠線(ボーダー)を表示するプロパティが標準ではありません。
 ComboBox  FlatStyle  Flat に設定すると、 枠線が白色になりよく見えなくなります。 そこで、 ComboBox の拡張クラスを、 枠線の色、枠線の種類、枠線の幅を追加のプロパティとして作成しました。 クラス名は名前は ComboBoxFrm とします。

以下に ComboBoxFrm クラスのソースを示します。

ウインドウメッセージの処理の中で、 WM_PAINT のタイミングで コンボボックスコントロールの枠を描画しています。
描画にはControlPaintクラスの静的メンバとして用意されている DrawBorder メソッドを使います。
尚、枠線の幅は大きすぎても変な表示になりますので、3までに抑えてあります。

このクラスをフォームに張り付けた時のプロパティのウインドウは以下の様な表示になります。 Cbo1
このクラスをフォームに張り付けたプログラムを実行すると以下の様な表示になります。 Cbo2
世界でいちばん簡単なVisualBasicのe本[最新第4版] VisualBasicの基本と考え方がわかる本
基礎Visual Basic 2015 基礎シリーズ

楽天市場

2016年3月16日 (水)

福井(福井県)での美味しい和菓子屋さん(お土産にも)

最近のニュースで昨年金沢まで開通した北陸新幹線の影響で、福井県への観光客が増えていて、 福井市の一乗谷朝倉遺跡、勝山市の県立恐竜博物館、坂井市の東尋坊、永平寺のでは前年比10%~50%増だそうです。
今まで知名度の低かった福井県も、北陸新幹線による良い効果があったようで、 多くのお客さんが福井を訪れて頂けることはうれしい限りです。

さて、観光に来られた方が福井のお店でどこがいいのか、美味しいのか、迷うのではないでしょうか。 そこで福井の中で私が美味しいと思う「和菓子屋」さん4店舗ほど紹介したいと思います。

■金花堂はや川

 http://habutaekurumi.com/

・お店:
  福井駅高架下プリズム店
  (福井駅から帰る時はここで買えますが、非常に混んでいます)
  勝山大仏店の2カ所
  (国道157号の勝山大仏入口の「旭町」交差点角)

・お勧め:
  「羽二重くるみ」これが有名です
  「笹寿司」(菓子ではありませんが、これもおいしいです)

■親玉菓舗

 親玉菓舗facebook

・お店:
  福井市順化2-20-15(福井の歓楽街・片町の中心通にあります)

・お勧め:
  「碌寶焼(ろっぽうやき)」これが有名です。

■甘福

 甘福の地図

・お店:
  福井市二の宮5丁目11-20(えちせん鉄道・八ツ島駅すぐ近く)

・お勧め:
  「あべかわ餅」きな粉の量が非常に多いので開封時は気をつけてください。
  (作っている量が少ないので前もって電話で連絡してみてください)

■八田屋

 越前おおの観光ガイド・八田屋

・お店:
  福井県大野市元町8-4
  (四番通り:七間朝市すぐ近く、大野市観光の折に立ち寄ってみては)

・お勧め:
  「カステラ」「おやき」「でっちようかん」「越の奥」
  和菓子一般ほぼすべて美味しいです。
  春は「おやき」夏は「くず餅」秋は「クルミようかん」冬は「でっちようかん」と季節ごとにいろいろあります。


私の独断と偏見で選びましたので、お口に合わない場合はすみません。 和菓子は賞味期限が3~5日、ものによってはその1日のみのものもありますので気を付けて下さい。

楽天市場