Application」カテゴリーアーカイブ

Accessで四捨五入する(追記)

以前書いた「Accessで四捨五入する」でAccess2000で66.55を小数点以下1桁で四捨五入した時に66.5になってしまう現象を”よしのすけ”さんに教えていただきました。
私のWindowsXP+Access2003では再現しませんでしたが、”よしのすけ”さんのWindowsXP+Access2000では四捨五入が上手く行かないそうです。
“よしのすけ”さんがいろいろと試してみたところ、下記のようにすると上手く行くと教えていただきました。Access2000から2003になっていろいろな部分で明示的に指定しないと上手く行かなくなったり逆だったりしています。おそらくこれもそのひとつなんだと思います。
Access2003でも正常に機能することが確認できましたので、こう書くほうがAccessのバージョンに左右されないのだと思います。
“よしのすけ”さん、ありがとうございます。

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

Schedule Watcher

いいものを見つけた。
前にOutlookでスケジュール管理してAUの携帯へデータを持っていく手順を書いたことがあるが、これはそのままエクスポートして取り込みができるのがありがたい。
Outlookでも何でもCSV形式のエクスポートが出来ればデータを移行して乗り換えるのも簡単だった。
エクスポートは vCalendar,iCalendar,CSV の3形式をサポートしている。
Schedule Watcher

Outlookのスケジュールを携帯へ

おそらく新しい携帯だとPCとのスケジュールの同期も楽なんだろうが、私のジジババ携帯だとその辺りで苦労する。いろいろなサイトで調べてみたが難しい方法ばかりでわざわざ苦労するのも嫌になる。
やってみたら意外に簡単な方法が見つかったので書いておく。
WindowsXPでOutlook2003でスケジュールを管理していて携帯はAUのW62PTの場合の例だ。おそらく携帯のメーカー毎に規格があると思うのでAUなら共通だと思う。
Outlookから「テキストファイル(DOS、カンマ区切り)でエクスポート。
この時に日付の範囲を指定するの忘れずに。また、携帯によって件数の上限があるのでその範囲内になるように調整する。(Windows、カンマ区切り)を選ぶと文字化けするので注意。
Googleカレンダーの[設定]の[カレンダー設定]の[カレンダー]の[カレンダーをインポート]でインポートする。
次に、そのカレンダーを[カレンダーをエクスポート]でエクスポートする。
エクスポートされたZIPファイルを解凍すると中にicsファイルが入っている。複数のGoogleカレンダーを設定している場合には複数のファイルが入っているので目的のものを選ぶ。
これをメールで自分の携帯へ送るか、USBケーブルやmicroSDを使って携帯へ取り込む。そして登録すれば終了。
このファイルは拡張子はics(iCalendar)だが内容を見るとvcs(vCalendar)のようだ。そのあたりはとりあえず上手くいっているので追求しないことにする。

OutlookExpressでメールの新着表示

職場の人に「メールが届いたらわかるようなソフトを知らない?」と聞かれて「設定すれば出るんじゃない?」と設定を見て気がついた。
OutlookExpressは音は出せるがポップアップのような表示が出来ないのだ。
Windowsを使い始めて以来Becky!以外のメーラーを使っていなかったので気がつかなかった。
探すといろいろとあるようだが、好みのものをひとつ見つけた。
Windowsに付属のMicrosoft Agentキャラクターが新着メールの有無を報告してくれるのだ。
Outlook Express Agent
動作は軽いのかな。私のCoreDuo2GHzの割合非力なマシンでも重さは感じないので、重いということ無いように思う。
インストールして設定することで、チェッカーを起動することでExpressを自動起動することも出来る。

Fedora13へAipoをインストール

コマンドを打つのが苦手なのと、Linuxのコマンドをいまいち知らないのでGUIでインストールしようとしたら苦労しました。
まずrootでログインできなかった。
これは前項の方法で解決。
ここまでくれば、もう大丈夫。
rootでログインして
/usr/local/
にaipoフォルダを解凍。
ログオフして、通常のユーザでログイン。
ここからは説明書どおりに
cd /usr/local/aipo/bin/
に移動。
sh installer.sh
でインストーラを起動。
これでうまくいきました。
あとは
./startup.sh
でaipoを起動するだけ。

Fedora10以降でrootでグラフィカルログインするには

久々にLinuxでサーバを立ち上げようとして、さて困った!
古めのマシンを再利用でサーバにと思った時にLinuxは便利なんですけどね。
Fedora10以降のGNOMEのグラフィカルログインでは、rootユーザでのログインができなくなったようです。調べてみたら、解決策がありました。
/etc/pam.d/gdmの2行目付近の
auth required pam_succeed_if.so user != root quiet
これを↓こんなふうにコメントアウトしてしまえば良いようです。
#auth required pam_succeed_if.so user != root quiet
また、fedora11以降では、下記のファイルについても同様の変更が必要です。
vi /etc/pam.d/gdm-password
なんともセキュリティって難しいもの。
どんどん使いにくくなるな。。。

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で四捨五入する(追記)

うちの猫の待ち受け時計

振り替え休日が最近多くて暇だったので家の猫の画像で待ち受け時計を作ってみた。
猫の顔が針と一緒に廻り、開けるたびに数枚の背景が入れ替わる。
飼い主だからかわいいのかもしれません。
猫好きの方は、よかったらQRコードを使って携帯にダウンロードしてください。
ファイルをパソコンでダウンロードしてUSBケーブルなどを使って携帯に持っていくとパケット料がかかりません。それぞれほぼ100KB程度ありますのでパケット料もばかに出来ませんよね。

neko12png neko12.bmp

(画像をクリックするとパソコンでもFLASHを表示できますが、携帯独自の関数で動いているので日時は正しく表示できません。)
出来が悪かったので作り直しました。
背景の写真は10枚がランダムに表示されます。
上の画像はAdobe Device Centralで表示したものです。

自作着うた

パソコンの話題というわけではないが、着うたを自作してみたので方法をメモしておく。携帯を買い換えた時に自分で買ったものを移動出来ないというのが理不尽に思えたからである。
自作着うた(MMF形式)の作成や自身の端末への登録は著作物の個人的利用に該当するために合法であるようだ。
当然他人への譲渡やサイトなどでの公開は違法行為となるので注意。あくまでも個人利用の範囲で音質が落ちた音源を使うのだからOKという考え方なわけだ。
MMF形式は音質が悪いと一般的に評価されているが着うたとして使うには十分な音質だと私は思う。
 

続きを読む

外付けHDDを完全に消去したい場合

外付けHDDの内容を完全に消去する必要がありフリーウエアを探してみた。
以前はあったはずなのだが探しても探しても見つからない。見つかったものはすべてシェアウエアか製品版。
どうも個人情報保護の関係で最近は商売になる市場らしい。
いろいろと探していくうちにWindows自体が標準で持っているcipher.exeで消去できることがわかった。
ただしこの機能を使えるのは Windows2000 ProfessionalとWindowsXP Professional Edition だけではある。
また、制限事項としては2つほどある。
・空き領域しか消去出来ない。
・NTFS領域しか消去出来ない。
なぜかというと、この機能は空き領域にファイルを書き込んで消すため、空いていない部分を消すことは出来ないためだ。FATに対応できないのはファイルサイズの上限が4ギガなので大きなディスクには対応できないためだ。
従って、消したいドライブをNTFSでフォーマットしてから作業を行う必要がある。
システムが入っているドライブを消したい場合には、外して他のマシンに繋ぐ必要があるため DESTROY などのフリーのツールを使ったほうが楽である。
準備が終わったらDOS窓を開きコマンドラインから下記のようなコマンドを打ち込む。
cipher /w:x:¥
(この例は x ドライブを消去する場合。)
Microsoftの説明には書いていないが0x00と0xffと乱数を順に書き込んで消去を行うので米国防総省基準の消去である。
詳しくは下記のMicrosoftの記事を参照
Windows で Cipher.exe を使用して削除済みのデータを上書きする方法