お知らせ

  • パソコン関連

Access 2007の延長サポートは10月10日まで

noimage

Access 2007の延長サポートは10月10日まで

Microsoft Office 2007の延長サポートは2017年10月10日で終了します。 その後セキュリティなどで問題があったとしてもアップデートされることがない状態になります。 Office 2007は前のバージョン2003から大きく変更があったバージョンです。 エクセルファイルのxls形式がxlsxになったり、アクセスのデータベースファイルがmdb形式からaccdbに変更になり、2007で新規やコンバートしてこれらの形式を使うことが推奨されました。 2003まではMicrosoftで規定されたバイナリ形式のファイルから、2007以降のファイルはXML準拠のOffice XML形式に変更され、データ構造が入り組んでおらず他のアプリケーションからの連携が簡単になりました。 ユーザーインターフェースも機能ボタンからリボンインターフェースに変更になり、大きな変更が加えられたバージョンです。 Windows Vistaと同時リリースから10年を経て計画通りサポート終了になります。 2003から2007以降へのアップデートは様々な部分で変更があり、また同一環境で共存できないなどで移行についてはそれなりに難しかったように筆者は記憶しています。 現在は2007以降のファイル形式が主流となってきているので、Office2007からOffice最新版へのファイルコンバートなどはそこまで難しくはないように感じます。 ただAccess2013ではAccess2007では存在していたADPが機能削除されていたり、機能について無くなっているもの、仕様が変更されているものも少なくはありません。 セキュリティ問題が発生するために早急な最新版への移行が求められています。 データのコンバートや最新版Officeでの動作検証などはOffice 2007を利用しているユーザーはすぐに検討すべきことです。

  • パソコン関連

64bit版WindowsでEXCELからmdbファイルを開けない

noimage

64bit版WindowsでEXCELからmdbファイルを開けない

先日、EXCELで作成されていたアプリケーションがあり、Access2003までで使われていたmdb形式ファイルにアクセスする部分で異常終了するという状況が起こりました。 エラーコードは0x80004005だったと記憶していますが、エラーコードで調べてもすぐに情報が出てきません。 それまでは動作していたし、他の環境でも動作は確認されているという事で、なぜトラブルに至ったかのきり分けが必要でした。 VBAをステップ実行し、エラー箇所を特定したところ、 mdbをオープンするするところで Provider=Microsoft.Jet.OLEDB.4.0 となっている接続文字列に行き当たりました。 そのエラーの出るWindows7は64bitバージョンですので、おそらくライブラリ参照の不整合か、あるいはなくなってしまったライブラリである事が想像されました。 Provider=Microsoft.ACE.OLEDB.12.0 と接続文字列を変更するとこのエラーは消え、正常に動作するようになりました。それ以外の部分も正常に動作しています。 Windows7は32bitと64bitでは完全に互換性のない部分があり、64bitで再構築する際に、ある程度古くなってしまったライブラリなどは64bit化していません。 今回のJet.OLEDB.4.0もその一つです。 すべてがそうではないのですが、一部そういった互換性の問題に当たると、原因を突き止めるまでに時間がかかり困る事があります。 そういった部分では、32bitのWindows7と32bitのOfficeを選んでおく方が、互換性という点では64bitバージョンに勝ると言えます。 将来的にWindows8以降でそのライブラリが存続するかは不明ですので、ある程度古くサポートをやめてしまったライブラリへの参照は今のうちに見直しておく必要がありそうです。

  • パソコン関連

WindowsXPからのAccess移行の注意点(文字編)

noimage

WindowsXPからのAccess移行の注意点(文字編)

WindowsXPで運用しているAccessデータベースをWindowsVista以降に移行する際の注意点をまとめます。 Windowsの字形変更についての内容になります。 Accessの移行 WindowsXPでAccess2003以前のバージョンを利用されている場合、OS、Accessともサポートが2014年に切れてしまいますので、できるだけ早期に切り換えを検討するべき時期になっています。 とくにデータベースは顧客情報など、企業として重要なデータを扱うため、これがセキュリティーの脆弱性を持つシステムで動作させ続けるのは避けておきたいことです。 今からであれば、Windows7とAccess2010あるいはAccess2013を利用するのが最も移行しやすい構成になるでしょう。 その際、データベースを移行することになりますが、それまでのAccessデータベースが問題なく動作した場合も、次のポイントについて調べておくことが必要です。 Accessでの事例(ダイレクトメール) Accessで顧客データを管理し、定期的にダイレクトメールなどのお知らせメールを送付する場合を想定します。 例としてこのようなデータを作成しました。 このようなレポートをタックラベルなどに出力して、DMの宛名として貼り付ける場合を想定します。 この場合、一見問題なく印字されるように見えますが、WindowsXPとWindowsVista以降ではフォントの字体変更があります。 一般にJIS90からJIS2004と呼ばれる文字のセットにMSゴシック、MS明朝、メイリオが変更されています。 ですのでレポートにMSゴシック、MS明朝を利用していると、この字体変更の影響を受けます。 見えにくいかもしれませんが左側がJIS2004字形、右側がJIS90字形です。 わかりやすく表示すると、このような差があります。 このような文字が合計168あり、人名に利用されている漢字はあまり多くはありませんが、特に上記の四つは利用頻度も高いと考えられます。 ですので、今まで通りの宛名印字を行ったとしても、違った字形で印字することになり、誤った表記のダイレクトメールが届いた、などといった問題になる可能性があります。 参考リンク http://www.adobe.com/jp/support/winvista/pdfs/JIS2004_Comparison.pdf 対処法 Windows Vista、Windows Server 2008、Windows 7 および Windows Server 2008 R2 で旧 JIS90 文字セットを使用する方法 http://support.microsoft.com/kb/927490/ja 上記リンクからWindowsXPと同字形のMSゴシックとMS明朝がダウンロードできます。 これはMSゴシックとMS明朝を置き換えるものなので、このフォントをインストールしていないWindowsVista以降のパソコンとは、すべてのアプリケーションで表示と印字が変わることになります。 AccessをインストールしているPCで、そのAccessデータベースがそれまでと同じ動作をすることを望まれる場合は、これが最適な方法です。   多少のフォントが変更されてもよい場合は、Officeに付属するHGゴシック、HG明朝シリーズが、これらJIS90に準拠したフォントとなっています。 レポートのテキストボックスのフォントをこれらに置き換えることも一つの方法です。システムのフォントは置き換わることはありません。 HGゴシックがデータベースで利用されている、すべての文字を抑えているかどうかは検証する必要があります。   このJIS90とJIS2004の字形はAccessの中で共存することはできないので、注意が必要です。

  • パソコン関連

Access2010とAccess2003の共存

noimage

Access2010とAccess2003の共存

Access2003のサポート期限がWindowsXPと同時期に終了してしまいますので、今後Access2010などへの移行が求められています。 ただ、単純にAccess2003のmdbファイルをAccess2010で開くだけでは、すべての部分でうまく動作するというわけではありません。 そのため、二つの環境で、検証しながら正しく移行したAccess2010のデータベースを構築する必要がありますが、この二つのバージョンは一つのパソコンの中で共存できない仕組みになっています。 正確にはインストールは両方ともできるのですが、それぞれのバージョンを立ち上げるときに、共通ファイルなどの非互換によって、セットアップが毎回実行されてしまうので、非常に使いづらく、効率も悪くなってしまいます。 そこでアプリケーションの仮想化という方法を利用して、Access2010インストール環境でAccess2003が同時に動作できるかを試してみます。 アプリケーション仮想化について アプリケーション仮想化ソフトウェアは、アプリケーションがインストールされるときの情報を取り出します。 そしてそのアプリケーションが実行される際に、あたかもインストールされているのと同じ環境をその場で作り出し、インストールを行わずにアプリケーションを実行する仕組みです。 これにはアプリケーション専用の仮想マシンを利用するといった方法と、アプリケーションのインストール時の情報をすべてキャプチャして、パッケージ化する、という方法があります。 今回Cameyoというアプリケーション仮想化ソフトウェアを利用します。ライセンスとしては、個人利用はフリーですが、商用利用の際は、使用する仮想化アプリケーションの数によって、金額が決定されます。 Cameyoはインストール時の情報をキャプチャして、一つの実行ファイルにパッケージするタイプの仮想化ソフトウェアです。 インストール時の情報とは、実行に必要なファイルのコピー、共通ライブラリなどのコピー、設定ファイルの設定、レジストリへの追加変更、などを指します。 CameyoによるAccessの仮想化 Cameyoを起動すると、以下のようなスタート画面が表示されます。 ここでCapture App Localyを選択します。 そうすると、まず、インストール前のシステムの状態の写しが取得されます。 そこからの差分をとるという形になりますので、必要なプロセスです。 これには少し時間がかかります。 スナップショットの取得が終了すると、キャプチャ中であることが表示されますので、そこからセットアップを開始します。 これでInstallDoneをクリックするまで、キャプチャが行われます。 Accessのインストールを進めます。 今回ボリュームライセンス版を利用していますが、インストール時のライセンスなどについては、十分注意して進めるべきでしょう。 Accessのインストールが終われば、続いて、WindowsUpdateを行います。 Office関連のアップデートを全て行うようにしてください。 アップデートが完了すれば、さらにアップデートを適用し、アップデートが最新になるまで、これを繰り返します。 全てのアップデートが終了した時点で、InstallDoneをクリックします。 仮想アプリケーションとしてのパッケージ化が開始されます。 これで仮想化が完了すると、一つの実行型ファイルにパッケージされます。 今回はoffice共通ライブラリのアップデートなども大量にあったため、ファイルサイズがかなり大きくなっています。 仮想化したのちのアップデートは行えないので、仮想化の際には十分なセキュリティーアップデートをしておく必要があります。 仮想化したAccess2003の実行 ここで仮想化されたアプリケーションは、インストールしていないパソコンでも即時実行可能です。 単体のexeファイルをパソコン上にコピーして、実行すれば、インストールを行わずにAccessが起動します。 Access2010や他のバージョンと同時に実行することもできます。 お互いが実行環境を共有していないので、セットアップファイルが実行される、というようなこともありませんし、関連付けが変わることもありません。 ただダブルクリックから実行されるまで、多少の時間がかかります。仮想的な環境を作るのですから、当然かもしれません。 動作の遅さが問題になる場合はよい解決法ではないかもしれません。 今回、仮想化によって共存できることを実証することが目的であり、すべての機能が動作するかというところまでは検証していません。 実際に利用される場合は、自己の判断で検証を行ってください。 仮想化ファイルの中身 CameyoのメインメニューからPackage editorを実行すると、内容をカスタマイズすることができます。 ここで不要なファイルを取り除いたり、必要なファイルを追加したりすることができます。 このようにエクスプローラーのような形で、パッケージ内を調べることができます。 例を挙げれば、%system%のなかに表示されるファイルは、c:\windows\system32に追加されるファイルをキャプチャし、仮想アプリ実行時に展開されるもの、となるようです。 キャプチャの際に注意する点 Cameyoはキャプチャを開始してからのすべての変更をパッケージ化してしまいます。 ですので、途中でWindowsアップデートが実行されたり、ウィルス定義の更新や、スキャン、その他の操作をしてしまうと、その変更の内容まで仮想化ファイルに保存されてしまいます。 ですから余分な変更が加えられないように、不要なタスクなどが動作しない環境でキャプチャを実施する必要があります。 キャプチャ専用のクリーンな仮想マシンなどを用意するのが最も手堅い方法です。 今回このキャプチャを実行するためにVMWareでWindows7環境を用意し、アップデートをすべて終わらせた時点で、スナップショットをとり、そこからcameyoの実行と、キャプチャを始めました。 キャプチャが上手くいかない、あるいは手順を間違えた場合などは、再度スナップショットを復元し、そこから再度の作業としています。

  • パソコン関連

Office2010の生産終了について

noimage

Office2010の生産終了について

Office2013発売に伴い、Office2010の生産はすでにマイクロソフトとしては、終了しているとのことです。 あとは店頭在庫、および、ダウングレード対応となっているようです。 2013年1月の当ブログ記事 Office2013発売日と価格決定、Office2010について https://www.sys-cube.co.jp/blog/1968.html では通例6か月の併売期間が設けられている、と書きましたが、Office2013は現在までにすでに製造を終了している、と回答をいただきました。 ほぼ6か月の併売は通例通りであったようです。 これについて、マイクロソフト社の公式の発表などはないということです。 現在ショッピングサイトなどで、パッケージ版の発売は行われていますが、実質在庫限りとなります。 弊社がよく利用しているDell社でもプリインストール版の販売は8月中に終了するとのことでした。 Office2013は機能追加も多くされていますが、ACCESSのADPなどのように、削減された機能もあります。 今後はOffice2013のダウングレードなどでの対応で、全く入手不可能になってしまうということはないようですが、Office2010のパッケージ版が必要な方は、今のうちに購入しておくことをお勧めします。

  • シスキュー技術部

Windows8とPostgresqlODBCドライバ

noimage

Windows8とPostgresqlODBCドライバ

PostgresqlのODBCドライバをWindows8 64bit版へ導入する際に直面した問題について投稿します。 とはいえ、完全な解決に至っていないので、PostgresqlをODBCで使う場合は、Windows8へのアップグレードは待った方がよさそうです。 PsqlODBCドライバでODBC Administratorがクラッシュ PostgresSQLのODBCドライバ64bit版をWindows8に導入しようと考える場合、公式サイトの最新版をダウンロードするのが当たり前の手順となると思います。 http://www.postgresql.org/ftp/odbc/versions/ ここで最新バージョンであるmsiパッケージ psqlodbc_09_01_0200-x64.zip をダウンロードし、展開し、インストールを行います。 ここでインストールしたODBCドライバをWindows8のODBCデータソースアドミニストレーター(64bit)で登録してみます。 ここで完了をクリックすると、 ODBCデータソースアドミニストレーターがクラッシュします。 32bit版ODBCドライバの導入 32bit版のODBCドライバであれば、もう一つ新しいバージョンがあります。 psqlodbc_09_01_0200-1.zip これを展開し、再びインストールします。 コントロールパネルー管理ツールからODBCデータソース(32ビット)を実行します。 ここでは64bitとついていないバージョンを追加することができます。 データベースの接続を入力すると、無事postgresqlに接続することができました。 問題点 Windows8の検索からODBCで検索すると、64bit版のODBCデータソースアドミニストレータにしかたどり着けません。 32bitのODBCアドミニストレータはc:\windows\SysWOW64\odbcad32.exeにあります。 64bitのODBCアドミニストレータはc:\windows\system32\odbcad32.exeがそれになります。 管理ツールから選べますので、これを利用してください。 もう一点問題点というべきなのかはわかりませんが、64bitアプリケーションから32bitODBCドライバは呼び出すことができません。 64bitアプリケーションから32bitドライバを呼び出せないのは、当然なことなのですが、OfficeからODBCでデータソースにつなぐ場合など、Office自体が32bit版か、64bit版かで、この辺が決定的に変わってしまいます。 ACCESS2013(64bit)からこの32bitのPostgresqlのODBCデータソースを呼び出そうとすると、 「 ODBC--呼び出しが失敗しました。 指定されたDSNには、ドライバーとアプリケーションとのアーキテクチャの不一致が含まれています(#0) 」 このようなエラーメッセージが表示され、それ以上どうすることもできなくなってしまいます。 Windows 8(64bit)+ACCESS2013(64bit)+PostgresqlODBCという組み合わせで、この記事が書かれている現時点で、動作させるための正解はない、といえそうです。 ODBCドライバを介さずに接続できれば、起こらない問題ですが、ODBCで他のデータベースに接続する形のACCESSデータベースや、EXCELシート、その他ツールなどは、導入前に注意が必要です。 これはODBCドライバとアプリケーションのアーキテクチャの不整合の話ですので、postgresqlに限った話ではありませんが、新しいOSの導入の際には、アプリケーションも含め、慎重に選択することが大事です。 すべて32bitを選んでおいた方が、無難に進む事例もあると実感しました。

  • パソコン関連

Office2013発売日と価格決定、Office2010について

noimage

Office2013発売日と価格決定、Office2010について

マイクロソフト社は次期オフィススイートであるMicrosoft Office2013の発売日を決定しました。 発売日は2013年2月7日で、価格はPersonalが\29,800、Home&Bussineeが¥34,800、Professionalが\59,800です。 現在Office2010を購入すると、2013への無償アップグレードが可能です。 Office2010はどうなるのか Accessのリプレースシステム開発 Access2013へのコンバージョン Microsoft Accessの移行について いままでも何度かAccessの記事を投稿していますが、Office2013とOffice2010では機能的な差があります。 Office2013によって追加される新機能もあれば、廃止される機能もあるため、Office2010がいつまで入手できるかは気になるポイントです。 日本マイクロソフト社に問い合わせたところOffice2010は当分の間、並行して発売されるとのことです。 終了時期は公式には未定とのことで、過去の例を参照してみます。 (2013/8/23追記、マイクロソフト社に問い合わせたところ、すでに現時点で製造は終了しているとのことです。  およそ6か月の併売は通例通り、今回にも適用された模様です。  詳しくは https://www.sys-cube.co.jp/blog/3596.html この記事を参照してください) Office2010は2010年6月に発売されましたが、Office2007は2010年の年末までには在庫のみ販売となっていたようです。 Office2007は2007年1月に発売されましたが、Office2003は2007年6月末には販売終了となっていたようです。 これらの例によると、およそ半年程度は並行して発売されそうですが、今回がどうなるのか、いまのところ不明です。 通例、企業向けのボリュームライセンスであれば、ダウングレード権は設定されているようですが、パッケージ製品やバンドル版はダウングレード権はないようです。 Office2010で必要な機能がある場合は、早めの購入がお勧めかも知れません。

  • シスキュー技術部

Microsoft Accessの移行について

noimage

Microsoft Accessの移行について

Microsoft Office Suiteの中に含まれる、データーベースアプリケーションAccess(アクセス)について、過去にも Access2013へのコンバージョン Accessのリプレースシステム開発 という記事を書かせていただいております。 今回Accessがどうなるのか、今あるAccessの資産をどうすればいいのか、ということについて考えてみます。 Microsoftサポートへの問い合わせ 現在RTM(Release to manufactureing、製品リリース用バージョン)版が一部提供開始されているOffice2013ですが、これについて、気になる点をサポートに問い合わせてみました。 ・Office2013はいつ発売になるのか (回答)現在のところ、正確な発売日は決定されていない。 ・Office2013リリース後はOffice2010は継続して入手できるのか (回答)従来であれば、後継製品リリース後にも旧バージョンはしばらく併売となるのが慣例。今回、必ずしもそうであるとは回答できないが、Office2010がすぐに手に入らなくなることはないのではないか。 ・Office2013からOffice2010へのダウングレードなどはあるのか (回答)ダウングレードはないが、現在Office2010を購入すると、Office2013への無償アップグレードはある。現在Office2010を購入して、Office2013へアップグレードしても、アンインストールしてOffice2010を再インストールすることは可能。 ということでした。 AccessについてもOfficeSuiteの一部ですから、同様に考えることができるでしょう。 旧来のAccess資産について Access97のmdbファイルはそのままAccess2007/2010に変換することはできません。 この場合、一度Access2000あるいはAccess2003で一度形式変換すれば、Access2007/2010に読み込ませることが可能となります。 Access97はかなり古いバージョンではありますが、業務用途に作りこまれている場合、なかなか入れ替えが難しいという状況もあるのではないでしょうか。 ここで気を付けなければならないことが何点かあります ・LenBの挙動が変更されている LenBは文字列のバイト数を数えるVBA関数です。Access97では半角文字を1、全角文字を2として計算されていましたが、Access2000以降では、すべての文字が2として計算されるようになっています。 Access97も内部ではUnicode(UTF-16)としてデータを持っているようですが、以前のバージョンのVBAとの互換性のためにこのような仕様となっていたものと思われます。 UTF-16は一つの文字を16bit(2バイト)として取り扱う符号化形式ですので、半角英数文字も全角文字も2バイト文字として扱われます。 ・レポート、フォームなどで文字が切れることがある テキストフィールドの仕様が変更になったようで、そのままではレポートの文字が切れてしまう、入力フォームのフィールドの幅が足りないといったことが頻繁に起こります。 レポートやフォームを精査すれば、これらの変更には対応できますが、変換してすべてチェックしないと、レポートで一文字でも落ちていたりすると、重大な不具合になりかねません。 ・VBAでのコードの変更 コードを例示すると、Access97では下記になります。 [vb] Dim db As Database, cust As Dynaset, chk As String If IsNull(日付) Then Exit Function End If Set db = CurrentDb() Set cust = db.CreateDynaset("年月テーブル") [/vb] これが、Access2003以降では、下記のようになります。 [vb] Dim db As DAO.Database Dim cust As DAO.Recordset Dim chk As String If IsNull(日付) Then Exit Function End If Set db = CurrentDb() Set cust = db.OpenRecordset("年月テーブル",dbopenDynaset) [/vb] このように、Accessのバージョンに応じたVBAコードの書き直しが必要となります。 Access2013で廃止された機能 Access2010まで提供されていたアップサイジングウィザードは、ADPとともに廃止になるようです。 アップサイジングウィザードはAccessデーターベースから、SQLServerへデータを移行し、AccessをSQLServerのクライアントとして使用するツールです。 テーブルはそのままSQLServerのテーブルに変換、クエリはストアドプロシージャに変換して接続、フォームとレポート、マクロ、モジュールなどをAccessのADPで実行する形になります。 これらの機能がAccess2013ではなくなってしまいます。 必ずしもうまくいくケースばかりではない、あるいはSQLServerとAccessのバージョンの組み合わせなどでうまく完了しないといった問題もありましたが、これらの機能が完全になくなってしまうのは、AccessからSQLServerへのアップサイジングの手段が一つ失われることになります。 Accessをこれからどう扱えばいいか 旧来の資産を活かす、あるいはSQLServerへのアップサイジングを予定している場合は、Access2010が発売されているうちに行うべきかもしれません。 Windwos8ではAccess2003以前のAccessが動作サポートされていないため、これから新規にPCを調達する場合はWindows7へのダウングレード権と所有しているAccessのバージョンを確認しておくことも必要です。 Accessはデータベースとしての基本機能と、レポート、フォーム、VBAの開発環境が一体となっており、代替のソフトウェアについては乏しいのが現実です。 互換性はありませんが、FileMakerが同じような分野のソフトウェアといえます。 .netで作成されたクライアントとSQLServer環境への移行についても、それなりの規模の開発となります。 弊社でもAccessから.net+SQLServer環境への移行は複数行っておりますので、もしお力になれるようでしたら、一度ご相談ください。

  • パソコン関連

Accessのリプレース開発

noimage

Accessのリプレース開発

Accessのリプレースシステム開発が急増しています。 その理由は大きく分けて3つあります。 1.Windows7ではAccess2000をサポート対象外! 新規でPCを購入されたお客様からよくお問い合わせがあるのが、このパターン。 Windows7では Access2000をサポートしていません(8は言わずもがな・・・)。 このような理由から、PCを一新するのを機に、Accessのリプレースを希望されるお客様が多くなっています。 2.Access2007以降では2003以前とファイル形式が違う! Access2007から、多くの機能面が見直され、ファイル形式が新しくなりました。 が、厄介なことに、この新形式のファイルはAccess2002-2003形式のファイルとは互換性がありません。 そのため「せっかくAccess2003で作成したファイルが正常に動作しない!」といったご相談を受けることがあります。 このような場合も、リプレースが必要となってきます。 3.Access2007以前のバージョンはMicrosoftのサポート対象外 Access2007以前のバージョンのAccessはMicrosoftのサポート対象外になっています。 更にAccess2010も延長サポートは2020/10/13をもって終了するため、リプレースを検討される企業様が増えています。 せっかく作り込んだ資産ですので有効に利用したいものです。   バージョンアップすれば、当然、過去のバージョンと互換性があると思いがちですが、 Accessに関して言えば、一概にそうとは言えません。現在、古いバージョンのAccessを 使用している方はリプレース作業が必要になることを踏まえたうえで、新規バージョンの 導入を検討してみてはいかがでしょうか。