2017-08-21 6 views
0

として設定され、ユーザーがAccessランタイムをインストールする必要が2016年チェックは、私は、ユーザーがこのファイルを使用するためにはアクセスアクセス2016からフロントエンドACCDRを作成したデフォルト

私のほとんどユーザーにはすでにMS Office 2007または2010がインストールされています。したがって、ユーザーがAccessランタイム2016をインストールした後にACCRDファイルを開こうとすると、2016年版ではなく旧バージョンのAccessを使用してファイルを開くと、エラーが表示されます。

私の質問:ユーザーがデフォルトとして設定されたアクセスの正しいバージョンを持っている場合

確認する方法は?私はこれをチェックするソフトウェアを支払っても問題ありません。私はまた、もしあればレジストリを編集したり、もしあればレジストリをインポートしても問題ありません。

[ACCDRファイルは、ACCDE(Access compiled files)の名前を変更して作成されます]。

+0

COMにデフォルトとして登録されているバージョンを尋ねるのはなぜですか? – Stavm

+0

@Stavm、どうやってそれを行うかを詳しく教えてください。 –

答えて

3

あなたは直接バージョンを読むことができます:

Version = Application.Version 

は "16.0" を返す必要があります。そうでない場合は、ユーザーにAccess 2016を使用して開くようにメッセージをポップアップします。

ショートカットを提供して、ランタイムでアプリケーションを開くことができます。

+0

ユーザーが初期バージョンを実行しているのを見た後、[VBAでランタイムバージョンを開く](https://stackoverflow.com/questions/42351768/how-to -open-ms-access-in-runtime-using-excel-vba)を実行します。 – marlan

+0

@marlan:これは、実行時モードでデフォルトのAccessを開くだけです。 – Gustav

+0

うん、私は恐れていたので... – marlan

1

ベスト・アプローチは、プロセスを起動してそれに応じてCOMを照会することです。

既にアクセスプロセスが実行されていない場合は、起動してクエリを実行し、今起動したプロセスで処理してください。

Microsoft.Office.Interop.Access.Application _accessApp = new Microsoft.Office.Interop.Access.Application(); 
    string version = _accessApp.Version;  

マッチMicrosoftのバージョン履歴に対するバージョン文字列:オフィス2016のための https://en.wikipedia.org/wiki/History_of_Microsoft_Office

、あなたが探している文字列は、別のアプローチは、オフィスのGUIDをチェックしている16.0


ですレジストリ を介して、それを既知のオフィスガイドと比較する(ランダムではない)。

https://superuser.com/questions/1140114/how-to-detect-microsoft-office-version-name

+0

リンクに感謝します。それは、どのバージョンがインストールされているかを知る上でレジストリ値がどのように役立つかを理解するのに役立ちました。あなたがプロセスを起動した直後にCOMに問い合わせてください。 –

関連する問題