2023-01-22、
本日のお題は、32bit版で、Accessで作成した業務システムをAccessの64bit版に変換する方法です。
以前は結構厄介でしたが、大分、良くなりました。
1.なぜ、Accessの64bit版に変換する必要があるのか?
Accessには、Office2010から32bit版と64bit版があり、最近のPCやOffice環境では64bit版が主流になっています。変換が必要になる主な理由は以下の通りです。
・互換性の問題 32bit版で作成されたVBAコードやAPI呼び出しが、64bit版ではそのままでは動作しないことがあります。
・ActiveXコントロールの非対応 一部の32bit専用のActiveXコントロール(例:カレンダーやバーコード)が64bit環境では使えない場合があります。
・外部ライブラリやDLLの非対応 外部のDLLやOCXファイルが64bitに対応していないと、参照エラーが発生します。
・ODBC設定の違い 32bitと64bitではODBCの設定ツールが異なるため、リンクテーブルの再設定が必要になることもあります。
2.Officeを購入する場合と、Access単品で購入する場合の注意点
Officeには、Office2007以前は、32bit版しかありませんでしたが、Office2010から「32bit版」と「64bit版」が存在し、Office2010以降のインストーラーには、32bit版と64bit版が同封されていますので、必要な方を選択できますが、インストールする際にデフォルトでは64bit版がインストールされるようになっていますので「32bit版」を使用したい場合は注意が必要です。
■制約
あと、Officeのパッケージの場合、Accessだけ32bit版、他のWord、Exelなどを64bit版に混在することは、できないと思います。どちらか一方ですので注意してください。
■購入方法
Microsoft社のOfficeとAccessの特徴として、Accessを単体で購入することもできますが、Officeに付いている場合もあります。但し高価ですが。
「Office365」は、サブスクリプションで買いやすいのですが、パソコンが滅茶苦茶、勝手にパソコン内のデータを吸い上げて重くなりますので、私個人としては、365は避けるようにしています。
▮Microsoft Access 20214(最新 永続版)
▮Microsoft Office Professional 2024(最新 永続版) Access 2024無し。
■Microsoft 365 Personal AI機能搭載 1年版 Access あり。
ただ、Windows(OS)もすでに、Windows10、11など64bit版が主流になっていますので、OfficeのAccessも64bit版で使いたいですね。そこで、32bit版のAccessで作成したシステムを64bit版のAccessで起動するとエラーが発生して使えませんので、これを何とかして使えるようにしましょう。
■Accessの32Bit版から64Bit版へ自動で変換してくれるプログラムなどありません。
ですので、
<使うための方法としては2通リ>
・32Bit版のAccess(Office)をインストールして使い続けるしかありません。
・自分で、32Bit版のVBAのプログラムソースコードを64Bit版のプログラムコードに書き換え変換する。
3.変換方法
32bit版のAccessで作成したデータベースを、64bit版の環境で使用しようとすると、問題なく使える場合もありますが、使えない場合は、Accessの機能ではない「Windows API」と云うWindows側の機能をAccessから呼び出している場合があるからです。
Accessの業務システムを64bit版に対応させるには、主にVBAコードの修正が必要です。
1)Declare を Declare PtrSafe
に変更します。
これはWindows APIを呼び出す際に必要です。
<例>
・32bit版
Declare Function GetTickCount Lib “kernel32” () As Long
・64bit対応版
Declare PtrSafe Function GetTickCount Lib “kernel32” () As Long
2)Long型 → LongPtr型への変更
64bit版の環境では、LongLong型(超長整数型)がありますが、これを使うと32bit版で使用できなくなりますので、LongPtrを使います。LongPtrは32bitならLong型、64bitならLongLong型を自動的に選択してくれます。
APIの引数などで使われる Long
型を LongPtr
に変更することで、32bit/64bit両対応になります。
<例>:Dim hwnd As Long ——> Dim hwnd As LongPtr
3)条件付きコンパイルの活用
#If VBA7 Then
や #If Win64 Then
を使って、環境に応じたコード分岐を設定することも可能です。
<例>
#If VBA7 Then
Declare PtrSafe Function GetTickCount Lib “kernel32” () As Long
#Else
Declare Function GetTickCount Lib “kernel32” () As Long
#End If
——————————————
■尚、Access Runtimeを利用したい方
Microsoft 365 Access Runtime をダウンロードしてインストールする場合は、
上記のサイトから可能ですが、32Bit版か、64Bit版か間違えない様に注意してください。
—関連記事—
・64Bit版の「Windows 10」に入替時に、Office365のAccess2016を使用する場合の注意点。
・先月末、Windows10で使用している「Access 2016」で動かしているアプリケーションが動かなくなるです。
—Accessデータベース作成講座—
・第1回 マイクロソフト ACCESSでデータベースを作成するには
・第2回 Accessで、「得意先マスター保守」処理画面を作成してみる。
・第3回 Accessで、「得意先マスター保守」処理画面を作成してみる その2。
・第4回 マイクロソフト ACCESS(アクセス)でデータベースを作成 検索・抽出処理
・第5回 Access2010でパスワード管理データベースを作成してみよう。
・第6回 EXCELで作成した住所録をAccess2010に取り込んではがき宛名印刷をしてみる。
・第7回 郵便局の郵便番号簿データをダウンロードして、郵便番号・住所検索用のアプリをAccessで作成してみる。
—Accessについて—
第1回~第10回まで、「Access」を扱う上で、非常に大事な事柄を記載していますので、是非、一読してみて下さい。
1)第1回、ACCESS(アクセス)データベース作成ソフトについて
Accessの能力評価、問題点について記載いたします。
・第1回 ACCESS(アクセス)データベース作成ソフトについて
2)第2回、マイクロソフト ACCESS(アクセス) 概要
Accessのバージョン、コンポーネンツ、EXCELからの移行、配布形態、拡張性などについて記載いたします。
・第2回 ACCESS(アクセス)データベース作成ソフトについて
3)第3回、ACCESS 2007の情報
Access2007の新機能、ランタイムの互換性、移行について記載いたします。
・第3回 ACCESS 2007の情報
4)第4回、ACCESS トラブル対処の情報1
ACCESS2000で壊れてしまったmdbファイルを修復する方法」です。
・第4回 ACCESS トラブル対処の情報1
5)第5回、ACCESSを「ファイル共有」で使用する場合の注意事項
ACCESSで「ファイル共有」方法とファイル共有する時の注意事項です。
・第5回 ACCESSを「ファイル共有」で使用する場合の注意事項
6)第6回、ACCESSのトラブル対処の情報2
ACCESSの「「メモリ不足」エラーについてです。
・第6回 ACCESS トラブル対処の情報2 「メモリ不足」エラーについて
7)第7回、ACCESSで Jet 4.0 データベースの動作環境を最適に保つ方法
・第7回 ACCESSで Jet 4.0 データベースの動作環境を最適に保つ方法
8)第8回、Access 2000とMSDEを利用してクライアント/サーバーシステムを構築する。
・第8回 Access 2000とMSDEを利用してクライアント/サーバーシステムを構築する
9)第9回、Access 2010の情報
・第9回 ACCESS 2010の情報
10)第10回は、Access2000(mdb)からAccess2010(accdb)に変換する
・第10回 Access2000(mdb)からAccess2010(accdb)に変換する
Sponsored Links
コメント