SQL Server DECIMALの型定義外の数値扱いについて
久々にSQL ServerのDECIMAL型を使用したのでメモ。
特に型外の数値がDECIMAL変数に入ったときの挙動について
小数点桁数が大きい場合(下の最後の桁が5)
DECLARE @decimal AS DECIMAL(8,2) SET @decimal = 987654.565 --小数第三位が5 SELECT @decimal
四捨五入される。
987654.57
小数点桁数が大きい場合(下の最後の桁が4)
DECLARE @decimal AS DECIMAL(8,2) SET @decimal = 987654.564 --小数第三位が4 SELECT @decimal
同様に四捨五入される。
987654.56
DECLARE @decimal AS DECIMAL(8,2) SET @decimal = 9876543.564 --整数部が7桁ある! SELECT @decimal
算術オーバーフローが発生する。
とにかくVBAでSQLのクエリを実行したい
「もうとにかく、VBAでSQL Serverのクエリ発行したんじゃ!」
本当に時間がないけど、簡易ツールとしてVBAでクエリ発行したい時のメモ書き。
とりあえず次の手順を行えばOK。ある程度きれいな設計にしています。(本当か)
Visual Basicを開く
DBAccessクラスモジュールを作る
Visual Basicの画面左側にあるプロジェクト上で右クリック > 挿入 > クラスモジュールを選択。
作るとClass1ができる。F4キーでプロパティ開いて、「DBAccess」という名前にしておく。※お好きなお名前でどうぞ。
DBAccessクラスのコードを書く
DBAccessのコードは次のようにする。
ボタンを配置
Excelシートに戻って…
開発タブ > 挿入 > ActiveXコントロールのボタンを選択!
適当な場所に配置!(マウスでお好きな場所をクリック)
ボタンクリック時の動作を書く
ボタンをダブルクリック! するとVisual Basicの画面に遷移して、以下のコードが自動生成。
さらにこう書く!
10行目のExecuteQuery()の中に実行したいクエリを書こう!
例えば、
ExecuteQuery("SELECT userId, userName FROM tblUser")
参照設定
これはよく忘れるので注意!
Visual Basicのツール > 参照設定を選択。
「Microsoft ActiveX Data Objects 2.8 Libary」を選択して、OKボタンをクリック。
以上で、SQL Serverにアクセスし、クエリを実行できるだろう。
とりあえず、今回はクエリを実行することだけに焦点をおき、その結果を変数に返すところまでは書いていない。
時間があったら書いておきます(^^)
Windows 10 April 2018 Updateでキーボード・マウスシェアUSBケーブルが使えなくなった
今更ながら、本日開発メインで使用Windows10のWindows Updateを行いました。
更新前のWindows10のバージョンは以下の通り。Fall Creater Update 2017です。
April 2018 Updateに必要な更新ファイルは知らないうちにダウンロードされており(記憶にないだけ?)、あとはインストールするだけでした。
インストール自体はすぐに終わり、いざ使おうとすると2つの大きな問題にぶち当たりました。
アクティブなウィンドウから外れる
メールやインターネット検索、コーディングなんでもですが、文字を打っているとアクティブ(操作中)の画面から外れます。一時的にキー入力が無効になります。
以下のYahoo知恵袋にもありますが、高速スタートアップを無効にしても効果はありませんでした。そもそもWindows 10 の高速スタートアップは使用していなかったので。
キーボード・マウスシェアUSBケーブルが使えなくなった
これは私にとっては大打撃。
会社支給のPCと開発用PCとをこのケーブルでつないでおり、キーボードとマウス、クリップボードを共有しています。
これがないと仕事にならないのですが、チャタリング(有効になったり無効になったりを連続で何回も繰り返す)を起こし、使い物にならない状態になりました。
再起動などを試みても結果はダメでした。
ラトックシステム キーボード・マウス シェアUSBケーブル2 REX-KMSU2
- 出版社/メーカー: ラトックシステム
- 発売日: 2013/07/26
- メディア: Personal Computers
- この商品を含むブログを見る
結果
もとの1709のバージョンに戻しました。
以下の方法でWindowsをもとのバージョンに戻せるのですね。そういえばCドライブ直下にWindows_oldとかいうフォルダがあったような…
結果として、更新を断念したのですが、Windowsのバージョンを前に戻す機能があるとは知りませんでした。
それを知ることができただけでも良しとしますか。(^^)