月別アーカイブ: 2010年2月

学ぶ意思の無い初心者達

「初心者です」は、回答者をイラつかせるマジックワード。
「情報セキュリティ人材育成シンポジウム」 ~永遠のビギナー対策を考える~
これらの記事は両方ともビギナー(初心者)の話題だが、共に共通しているのは学ぶ意思の無い人達ということだ。
今の時代にパソコンの初心者を気取っていて恥ずかしくないのだろうか。使えることが偉いのではなく当たり前の時代なのだ。
初心者時代は誰にでもあるが、それが続くと胸の名札は「無能者」に変わらないのだろうか。
鉛筆とそろばんの時代に鉛筆の削り方も知らず、そろばんで足し算も出来なかった事務のおじさんは「無能」な人だったはずだ。
ところが今は「知らない」「詳しくない」と言えば済むらしい。ずいぶんと楽な世の中になったものだ。
自分が管理すべきものも管理できず、情報漏洩が起ころうとも「初心者」で済む世の中というのも楽しいではないか。
腹立つ!

Accessで四捨五入する

以前、AccessのRound関数が銀行型丸めで私達が通常使っている四捨五入とは違うことを書いたが、実際にAccessで四捨五入を使わなくてはならないことになったのでユーザー定義関数を作って対応した。
0.5を加えて小数点以下を切り捨てることで小数点以下を四捨五入したことと同じ結果になるので、丸め桁数の”s”を指定して、10の”s”乗をかける事で桁を調整し0.5を加えて切り捨て、10の”s”乗で割ることで元の桁数に戻す。また、指定桁数”s”がゼロ以上か未満かで処理を分けて桁数を指定できるようにしてみた。
実際にはこのようにユーザー定義関数を書く

Public Function roundy(x As Currency, s As Integer) As Currency
Dim t As Integer
t = 10 ^ Abs(s)
If s > 0 Then
roundy = Int(x * t + 0.5) / t
Else
roundy = Int(x / t + 0.5) * t
End If
End Function

Accessの中で実際に使うにはこのように書けばよい。
roundy(数値,丸める桁数)
丸める桁数の考え方
 100の位 : -2
 10の位 : -1
 1の位 : 0
 少数第1位 : 1
 少数第2位 : 2
「なんでAccessはこんな変な丸め方する?」と考える人が多いのも確かです。Excelとの違いと考えると、元々の開発を行った会社がAccessとExcelは違うのは確かです。Microsoft社になってから長いのに統一されないのは確かに変な会社である証しです(^^;
※ roundy の “y” は遊介の “y” です(笑)
【追記】
Access2000で変数の形式を示さないと上手く行かないことがあるそうです。
その場合についてはこちらを参考にしてください。
Accessで四捨五入する(追記)