バージョンアップの恐怖

*このエリアにはAmazon書籍へのリンクとか貼ってるんですけど、これに関しては本がないので代わりに URL 貼っておきますね。

Access データベースを SQL Server に移行する
移行のための Access データベースの準備 (アクセス可能な Sql)
アクセスのための SQL Server Migration Assistant の概要 (アクセス用 SQL)

Office 製品ってよくバージョンアップするよね。某スク○ェアの○inal○antasyと同じぐらいの頻度で新製品が出るじゃない?
やっぱさ、新しいもののほうがイイに決まってるんだから、新製品が出たらいままで使ってた mdb も即変換したいんだけど。

Access2000 が出てから幾星霜。さらに Access 2002 が出てから幾年月。さらにAccess2003 が2007 があああああああ

レコードロックがサポートされるとか、SQL Server とおなじもの(MSDE のことらしい)がついてくるとか、Officeリボンってなんじゃらほいとか、新しいバージョンが出るたびさまざまな話題をふりまいておりますが、さてどうでしょう?皆様、使ってますか?

Access200~2003 まではソックリです。「これで新製品とか言うなよ!」って言いたくなるぐらい、見た目は同じです。まぁね、それに騙されてバージョンアップしちゃうからいろいろ苦労するんだろうけど。
それとは違い、Access2007 の違いは劇的です。なにが劇的って、操作の仕方がさっぱりわからん!(笑
これまで使い込んできた(自称)プロフェッショナルな方(=なぼ)は相当困るんじゃないですかね?機能はそれほど変わってないはずなのに、見た目と操作性がまるで違うってなんか詐欺っぽいかんじ。
新しいファイル形式(拡張子が違う)も、なんでわざわざ拡張子を変えたのかさっぱりわからん。そんなところを変えるよりもJetをバージョンアップしたらどうだい?

自 mdb の中のテーブルをモジュールでアクセスしようとした場合でも、わざわざ ADO を使う必要性は特に感じられないですし。(今後 SQL Server を使用する可能性があるのであれば別ですが)
ということは、逆に言えば「なにがなんでもバージョンアップしなきゃ駄目!」と意気込む必要もさしあたっては無い、ということになるのでしょうか?例えば、過去にお客さんに収めた、いま快適に使っているシステムを大冒険してまで置き換える必要があるかというと、いまのところそんなことしてもなんのメリットもないでしょう。


ただし、Office本体を最新のバージョンにしたい場合はちょっと話が違ってきます。

なにが不安って、違うバージョンの Office 製品を1マシンに同居させることがとにかく不安です。サポートされてないわけじゃないですが不安なことに変わりありません誰が信じるもんですか。
セットアップの順序に気を付ければ同居は可能、と言われていますが、それは Office 製品と Access を熟知した人がセットアップした場合です。できれば同居は避けた方がいいのは言うまでもありません。
こんな場合は迷わずバージョンアップしましょう。あとあとのトラブルを避けるという意味でも。

バージョンアップする際に問題になるのが、増える機能があれば減る機能もあるという現実です。
ということは、単に mdb の形式を変換するだけではまともに動かなくなる可能性がある、ということです。
いままで下位互換のためだけに残していたメソッド(Access2.0のことだ!)はもうまったくサポートされなくなっています。
さらに、過去バージョンから変換した mdb ファイルは、「変換したんだよん」という事実をどっかに持っているらしく、それだけでなんだか調子がオカシイ?ということが往々にしてある「らしい」です。そりゃそうですな、無理な下位互換をとろうとして相当無茶をしているんでしょう。だったらいっそ互換なんてとらなきゃいいのに。

もともと、Office製品の下位互換保証は1バージョン前までと言われていました。(公式に言われていたかどうかは定かではありませんが)
なぼが某所で電話サポートしていた頃、Access95 が発売になりました。そのとき、1つ前のバージョンである Access2.0 形式の mdb からは、事前に最適化してあれば正常に変換できましたが、Access1.1 形式のMDBは直接変換できませんでした。Access1.1 形式の mdb は、Access2.0 を使って一度 2.0 形式に変換してからでないと Access95 形式に変換できません。
つまり、Access2.0 を買わずにいきなり Access95 を買ってしまうと、いままで使っていた mdb が使えなくなってしまうのです。これはもちろん問題になったようですが、結論としては下位互換保証は1バージョン前までという方針に落ち着いたようで、もしユーザーからクレームが入った場合にはAccess2.0 を貸し出す、ということになりました。
(20年以上前の話です。今はこんなこと絶対やってくれないっす。ありえない。)

これらのことから考えて、下位互換は過信するなということが言えると思います。新機能、消える機能には常に気を配り、そのたびにシステム全体を見直す必要があるでしょう。
つまり、Accessを使って一度システムを作ってしまうと、今後 Office 製品が出るたびにバージョンアップの恐怖に脅えることになるのです。

ただし、Visual Basic 等からJetエンジンを介して mdb を使っているような場合は上記の話はあてはまりません。Jetエンジン、DAO の複数バージョン混在、DAOとADOの混在等は(いまのところ)問題ないからです。
(でもね、64ビット環境で使うときは注意ね。Jetは32ビットしか無いので -> ACE エンジンになってから 64 ビットが出たかな?)

ただしただし、MDAC には注意しましょう!Jet が含まれていたりいなかったり、あてたら最後アンインストールできないし。うかつにインストールするとえらい目にあう「かも」しれませんので充分注意したほうがいいです。
→ さすがにもう MDAC は無いか!

以上は、Access を使ってシステム開発をしていらっしゃる方向けのお話です。個人で Access を使っている方は、新バージョンが出るたびにそちらに置き換えていただくのが最善かと思います。逆に、1つづつ新バージョンの新機能をとりいれて行かないとあとあと面倒になりますので。

気がついたら、自分の持ってる製品がサポートされてない!って事態にもなるんですよ~~。