アドレス帳のデータベース移行の下調べ

(このページは現在進行形・試行錯誤中のメモ書きなので、内容が適切かどうか確認しておりません。あしからず)

ハガキの宛名印刷には Access の住所録のデータを Word で印刷という方法をとっています。データベースは Access 95 から 2000 のころのサンプルを手直ししながら使っているのですが、これだけのために Access 付きの Microsoft Office を購入するのももったいないですし、それ以上に Windows と MS Office というプラットフォームに制限され続けるのもおもしろくありません。

フリーのデータベースというと、WordPress で使っている MySQL、日本でユーザが多いという PostgreSQL、ファイルで組み込めて PHP にも含まれる SQLite、OpenOffice などの BASE (中身は Java の HSQLDB) といったところでしょうか。

WordPress を利用しつつ、自分で使いやすいように作ればいいように思うのですが、まずはデータベースと SQL をおさらい — 勉強しなおしです。Access のデータベースの中身をそのまま SQLite に移行することにします。ちょっと触るだけなら、サーバ不要のデータベースがよさそうですし、Mozilla も使っていますしね。

Windows のシェル用バイナリをダウンロード。解凍すると sqlite3.exe という単独の実行ファイルになっています。日本語の解説は、

一応、DLL もダウンロード。C:\Windows\System32\ に sqlite3.dll をコピー。(この DLL がなくても ODBC ドライバーは動く)

Access からエクスポートできる種類の中に ODBC データベースがあります。SQLite のドライバがあればエクスポートできます。

日本語解説のリンク先である配布元の文章を読むと、Windows が 64 bit でも、使うソフトが 32 bit なら 32 bit を使うように書いてあるので、32 bit 版の sqliteodbc.exe をダウンロード、実行(インストール)。

コントロール パネル\システムとセキュリティ\管理ツール から「ODBC データ ソース アドミニストレーター (32 ビット)」 を起動。「システム DNS」に「SQLite3 Datasource 32 ビット SQLite3 ODBC Driver」ができています。(…たぶん。いろいろな操作を実行したあとに確認したので、この時点では違うかもしれません。一度なにかを設定すると、削除したつもりでも、設定がどこかに残って、次に使われたりするので、初期の状態がわからなくなりました。具合が悪かったら、このへんをいじるといいはず…)

手元の Access 住所録 を Access 2010 で開きます。テーブルを開きます。テーブルは一つだけでした。リボン「外部データ」→「エクスポート」→「その他」→「ODBC データベース」にエクスポート。

ダイアログで、「住所テーブルのエクスポート先」はデフォルトの「住所テーブル」(ODBC データベース)のままでもいいのですが、文字コードが気になるので「mxJushoTable」(ODBC データベース)に変更。

「データ ソースの選択」ダイアログで、「コンピューター データソース」タブ、データソース名「SQLite3 Datasource」を選択、「OK」。そうすると、Access ファイルと同じディレクトリに 「sqlite.db」 というファイルができます。テキストエディタで無理やり開くと、日本語部分は概ね UTF-8 になっているようです。Access が UTF-8 なのか、SQLite3 ODBC ドライバが UTF-8 にしているのかは不明。

sqlite3.exe で sqlite.db を開けます。 .output でファイル名を指定して .dump すると、中身が SQL で書かれたテキスト ファイルに落ちます。これは UTF-8 でした。簡単なヘルプは .help で。cf.  Command Line Shell For SQLite (コマンドの解説)

UTF-8 がどうこう言っているのは、ODBC ドライバに日本語が通るパッチを書いている方がいるからです。ただし、それがちょっと古い(2008/05/24, 2009/08/23)ので、かえって適用しないほうが無難かなと思いました。すくなくとも、私が現在 対象にしているデータベースに関してはドライバの日本語化を考えずに済みそうな感触です。

(2014/1/8)

Windows 8.1 をクリーン インストールした

稼働中の Windows 8 を Windows Update で Windows 8.1 にするには不安があります。例えば、

さらに、手元のメインマシンでは Windows 8 の起動ドライブのパーティションを小さくしすぎて問題が起こっていたので、新しい HDD にクリーンインストールすることにしました。

かなり裏ワザっぽい設定ファイルですが、ともかく、無事にクリーン インストールできました。

インストールの最中、Microsoft アカウントにサインインせずにローカル アカウントだけで使いたい場合は、既存の Microsoft のアカウントを設定せずにオプションを選び、新たに Microsoft アカウントを作るオプションの画面で、さらに小さくローカルアカウントを作るオプションがあるので、その画面で従来型のローカルアカウント設定を行います。OS インストール中に深い階層までひたすらオプションを探さないとローカルアカウントが作れないので、よほど Microsoft は Windows 8.1 で Microsoft にサインインさせたいんでしょうね。(2014/1/9 追記)

Windows 8.1 になってもスタートメニューは使いにくいので、

これで自前の [スタート メニュー] を作れます。(追記 2014/5/30: Windows 8.1 Update の 「スタートボタン」でほぼ十分になりました。オプションで、スタートボタンからアプリ画面に直行できます)

エクスプローラーの表示設定はイの一番に、拡張子表示、隠しフォルダもシステムファイルも表示するようにしてあります。ショートカットのフォルダの中に別のショートカットがうまく入らなかったので、

をみながら mklink /D … でショートカットを作成、ツールバーにあるショートカットの [スタート メニュー] フォルダに突っ込みました。

Windows 8.1 も相変わらず完全な電源OFFがやりにくいですね。

によれば、ショートカット [Ctrl] + [Alt] + [Delete] か [Win] + [I] で電源アイコンを表示させようというのですが、やはりスタートメニューにほしいもの。

などを見ながら、 shutdown /s /t 10 (電源オフ)、 shutdown /r /t 10 (再起動)、 shutdown /r /o /t 10 (詳細オプション)、shutdown /a (再起動取消・アボート)のショートカットを作って、上記 [スタート メニュー]  の中のフォルダに入れました。[スタート メニュー] の中のフォルダは三角矢印(▶) で中身が展開されるので便利です。フォルダへのショートカットが展開されない場合は上記 mklink で作成。

普通のシャットダウンやサインアウト等は、スタートボタンの右クリックか、[Win] + [X] で出てきます。便利になりました。(2014/1/13 追記) (2014/5/30 追記: 電源プランで高速起動をオフにしておくのもありです。)

環境設定は大まかには Windows 8 と同じでよいとして

最初に入れたソフトは Tween 。これは古いフォルダをまるごとコピーするだけです。(2014/5/30 追記: Tween を起動したままで運用したい場合は、電源プランを「高パフォーマンス」にするか、スリープしないように設定を変えておきます。)

Thunderbird はインストール後に、古いプロファイルのフォルダをもってきて、そこを指すように profile.ini を書き換えるだけ。(2014/5/30 追記: 直接書き換えるより、thunderbird -p で起動して、従来のプロファイル フォルダを選択するほうが楽です)

Firefox は Windows 8 のときから、アプリケーションを終了してもバックグラウンド プロセスに残ったままになり、そのたびにタスク マネージャーで強制的に [タスクの終了] をするようになっていました。Windows 8.1 に持ってきたプロファイルでは同じ不具合が発生しました。新規に作成したプロファイルではきちんと終了するので、古いプロファイルに問題があることになります。Web ブラウザは JavaScript の実行プラットフォームのようなものですし、このごろ Firefox はアップデートが激しいので古いプロファイルにも不整合が発生しやすいのでしょう。過去にもいろいろなトラブルが起こりました。そこで今回は、新しいプロファイルをデータドライブに作成し、古いプロファイルから必要なファイルだけ上書きコピーしました。今のところトラブルは起こっていません。

  • 古いプロファイルから必要な情報を復旧する | Firefox ヘルプ
    • ブックマークと閲覧履歴: places.sqlite
    • パスワード: key3.db 、 signons.sqlite (2つとも)
    • サイト別の設定: permissions.sqlite
    • 検索エンジン: search.json
    • 個人用辞書: persdict.dat (Firefox の辞書に単語を登録したことがなければ、このファイルは存在しません)
    • 自動補完履歴: formhistory.sqlite
    • Cookie: cookies.sqlite
    • セキュリティ証明書の設定: cert8.db
    • ファイルタイプとダウンロード設定: mimeTypes.rdf
    • ダウンロード履歴: downloads.sqlite

(2014/5/30 追記: 不調がなければ、従来のプロファイル フォルダを持ってきて、firefox -p で起動して場所を選択するのが楽です)

Windows 8 標準の付箋のデータは

  • Windows 7/8 の 付箋
    • C:\Users\(プロファイル名)\AppData\Roaming\Microsoft\Sticky Notes\StickyNotes.snt
    • %USERPROFILE%\AppData\Roaming\Microsoft\Sticky Notes\StickyNotes.snt

古いハードディスクからコピーして上書き。この付箋はショートカットキーを使うと 文字飾りを指定できたんですね。

VirtualBox 4.3.6 はインストールのあと、旧 Windows 8 からフォルダごとコピーしてきた Virtual Disk Image ( .vdi ) を指定したら仮想マシンが動きました。共有フォルダは再設定。

プリンタは Bullzip をインストール

このごろ、画面のメモは [Alt] + [Print Screen] でキャプチャしてに画像に保存するか、Bullzip で PDF にしています。Web ページなどは何度か試行錯誤で紙の大きさに合わせ込んで、どうしても紙にする必要があったらプリントアウト。プリントアウトもセブン-イレブンの

で、カラー A3 サイズ(80円)を利用することが増えました。うちのプリンターは Canon MP-810 なのですが、黒インクがまったく出なくなっていて、きれいなカラー印刷を行う設定でカラーのほうの黒インクを使うように指示して、だましだまし使っています。複合機で、スキャナは生きています。古いのでドライバも Windows 8 用が提供されていませんが、Windows 7 (64 bit) 用で使えています。

タッチパネルのないデスクトップPCでタイル UI(没入型 UI、全画面型UI)は使いたくないので、サインイン時にデスクトップになるような設定にしています。Windows 8.1 ではその設定のオプションができるようになっています。拡張子ごとのプログラムの関連付けも、一個ずつ右クリックで「プログラムから開く…」でデスクトップのほうのアプリに変えて「すべての (特定拡張子) ファイルをこのアプリで開く」にチェックを付けておくか、または、「既定のプログラムの選択…」で規定のプログラムを変えてしまいます。PDF は Windows 8.1 初期状態でタイルUIしかないので、

をダウンロードして入れました。

小寒も過ぎ、寒中になったので、喪中の人に年賀状代わりの寒中見舞いを出すことにしました。絵と文面用に、GIMP と Inkscape をインストール。ずっと Adobe Creative Suite (CS1) を使ってきましたが、Adobe Creative Cloud を契約したくなるほどには使っていません。CS の認証サーバの関係で動かなくなっているのですが、Adobe のサイトを読む限りでは、その場合は正規契約者のサポート用に公開されている CS2 のダウンロード版を使うようです。はっきり書いていないので、正式には未確認です。

フォントは IPA フォント (IPAex) をインストール。IPA フォントはライセンス上、たいていの用途にフリーで使えます。

印刷物用には、DynaFont Open Type 100 For Windows Standard をインストール。古い製品なのでサポート終了済み、同梱のインストーラが動きませんが、DynaFont Windows Vista/7対応インストーラ でインストールできます。

宛名印刷は Microsoft Office 2010 の Access の住所録を Word で宛名印刷です。Access の住所録は古い形式のまま使っているので、どうにかせねば。

(2014/1/5 – 1/8)

(追記)

地震速報は、Twitter で大きな震度を通知する bot を複数フォローして、発言時に Tween で音を鳴らすように設定。また、 SignalNow Express インストール(警報音の継続時間も設定できます)。

防災科学技術研究所 の「強震モニタ」・「新強震モニタ」へのショートカット(URL) をタスクバーにピン留め。新強震モニタを動かしておくと、地震発生時に(単発)チャイムが鳴ります。

レーダー・ナウキャストへのショートカットをピン留め。(2014/5/30 追記: XバンドMPレーダもよさそう)

(2014/1/9)

(追記)

Media Center Pack は別途、検索キーワード「機能の追加」にプロダクトキーを入力してインストールします。再起動必須。Windows 8 自体のプロダクトキーで Windows 8.1 をインストールするだけでは、Media Center は入りませんでした。なお、Windows 8.1 単体では DVD や MPEG-2 の視聴ができません。他の動画視聴ソフトを入れるほうが便利かもしれません。

(2014/1/11)

(追記)

  • Evernote
  • Dropbox

(2014/1/11)

(追記)

(2014/1/11)

(追記)

一部、文中に追記。

2014/4/9 の Windows 8.1 Update で、UI が Windows 8.2 ではないかというくらい変更がありました。だいぶ使いやすくなりました。

累積的な Windows Update が大量に存在するので、初期の状態からでは Windows Update に失敗することがあるようです(何度か失敗しました)。たまたまかもしれませんが、重要な更新でチェックが付いているものを手動で外し、小さくて無難そうな更新だけにしたら初回の更新が成功し、そのあとは普通に更新できるようになりました。何が起こっていたのかはわかりませんが、ここにメモしておきます。 (2014/5/30)

更新に失敗することがある件、追記。別の環境下での観察では、PCを起動して放置すること数時間、バックグラウンドの”Windows Modules Installer Worker”がタスクマネージャーでCPUもディスクも0になってからUpdateを再試行したら成功したことがあります。それとも、”Windows Problem Reporting”のほうか、ほかのスタートアップ プログラムか。とにかく、CPUやディスクが専有されている間に Windows Update をやると(必ず)失敗するものがあるように見受けられます。(2015/7/6)

 (追記)

ログイン時に PowerShell スクリプトを実行するには、「コンピュータの管理」→「タスク スケジューラ」でログオン時用のタスクを作って、

  • プログラム/スクリプト: powershell
  • 引数の追加: スクリプトのフルパスを二重引用符で囲む。 -NoExit を追加すると動作チェックに便利。

実行に管理者権限が必要なスクリプトなら、タスクのプロパティで「最上位の特権で実行する」にチェックを付加しておきます。

また、実行ポリシーはデフォルトで Restricted なので、RemoteSigned に変更しておきます。PowerShell で、

Set-ExecutionPolicy RemoteSigned

を実行。

(2014/6/3)

(追記)

タイムサーバの指定を変更。マザーボードの時計が狂いがちなので、タイムサーバ (NTP) との同期間隔を短くしています。

(2014/6/5)

太陽の肉眼黒点

太陽(肉眼黒点) 2014.1.7

2014/1/7 – 13:58 (JST)。Canon EOS Kiss Digital N、3 BEACH DIGITAL 60E 600 mm F12、ISO 200、1/640 s、ND 100000。トリミング。

私の肉眼(メガネ)でも、日食グラス越しに見えました。肉眼黒点と言われる大きな黒点でも、私の目では見えないことが多いのですが、この黒点はわかりました。多少ピンぼけしているようでもありますが、カメラやレンズがよければ、もっとくっきりと写るはずです。

(2014/1/7)

Windows8.1に更新、パスワードを思い出せ

ファイル置き場にしているパソコンがWindows 8で、リモートデスクトップで使っていたのですが、パスワードを忘れたままWindows 8.1 にアップデートしてしまいました。最終的にはパスワードを思い出せたのですが、初期化・リカバリーするはめになるかと焦りました。

マイクロソフト・アカウントを設定していなくてもストアの更新の画面になり、Windows 8 → 8.1 がダウンロードできてしまうんですね。リモートデスクトップで Windows 8 にログインしたら 8.1 へのアップデートになって、キャンセルボタンもないので、促されるままに、ハイ、ハイとボタンを押していったら 8.1 へのアップデートが実行開始されてしまいました。(メインのマシンの方では、どうにかしてアップデートの画面をキャンセルできたのですが、どうやったのか思い出せません。ウィンドウを引きずり下ろしたんだったかな?)

ダウンロードが始まり、メインのマシンで作業していて、気がついた頃にはリモートデスクトップ接続が切断されていました。リモートデスクトップでは接続不能だったので、ローカルにキーボード、マウス、画面をつないだら、エンド・ユーザー・ライセンスの画面になっていました。OK、初期設定(オンオフ)などがあって、(ローカル)アカウントのパスワードを入れろと。覚えてません(ヒントもなく)。いろいろな文字列を何度も何度も試してダメでした。画面下の方の「別のユーザです」扱いにしてくれというボタンがあるのに気づいて押したらアップデート自体は進み、その後、リモートデスクトップからは入れるようになりました。

などを眺めて、リモートデスクトップからパスワードを削除(変更)しようとしたら、 現在のパスワードが要求されて先へ進めません。ネットワーク接続でログインしているのであって、ローカルに直接操作していないのだから、当たり前といえば当たり前の制限です。システムを初期化するのは嫌だなと思いつつ、ローカルのキーボード・画面でサインインを試みようとしたら、パスワードのヒントが表示されました。このヒント自体、意味がつかめないように書いておいたので解読を試みつつ、何度も何度も再試行。やっとのことで分かりました。パスワードの回数制限がなくて(または制限未満で成功して?)助かりました。

こんどは紙に書いてしまっておきます(これも暗号化しておけば安全かな… この紙があるところまで立ち入る人はいませんけど)。

(2013/11/21)

追記

Windows TIPS:パスワードを忘れたWindows 7/8/8.1にログオン(サインイン)する – @IT

(トリッキーですが、こんな方法もあるそうです)

(203/12/23)