社内SEの話

日々起きたことの記録用

Access VBA 実行時エラー'2926'

↓プログラミングで副業を考えたらこちら↓

症状

Access レポートを実行したらエラーが発生しました。

エラーメッセージ

セキュリティの設定と現在のセキュリティポリシーにより、このコントロールは使用できない状態になっています。ポリシーを変更し、データベースを使用可能にするには、メッセージバーを使用してください

レポートのデザインで確認します

通常ここにはサンプルのバーコードが表示されバーコードコントロールであるのがわかるようになっていますが、何も表示されていません。

プロパティで設定情報を確認してみます。

本来あるはずのコントロールソースがありません。

コントロールをダブルクリックしてみると

「このセキュリティの設定と現在のセキュリティポリシーにより、このコントロールは使用できない状態になっています。ポリシーを変更し、データベースを使用可能にするには、メッセージバーを使用してください」

前述の実行時エラーと同じ内容のメッセージが表示されました。

対策

ファイル ⇒ 情報 を開きます。

セキュリティ情報に警告が表示されています。

「アクティブコンテンツには、マルウェアやその他のセキュリティ上の危険性が含まれている可能性があります。このファイル内のアクティブコンテンツはロックされています。トラストセンターの設定を確認するか、IT管理者にお問い合わせください」

トラストセンターの設定を選択します。

トラストセンター ActiveXの画面が表示されます。

「警告を表示せずにすべてのコントロールを無効にする」になっています。

「先に確認メッセージを表示してから、初期化に危険が伴うコントロールには制限を強化し、初期化しても安全なコントロールには最低限の制限を適用して有効にする」を選択します

OKをクリックします

指定したオプションを有効にするには、現在のデータベースを閉じて再度開く必要があります。

OKをクリックしてAccessを閉じて再度開きます。

設定が有効化されます。

バーコードのプロパティを確認すると、コントロールソースが表示されました。

【原因について】

ActiveXのセキュリティ設定が問題箇所となりました。

ActiveXの設定はこれまでデフォルトのまま使っていたのでOfficeの更新かWindowsの更新で設定が強制的に変更された可能性があります。

理由は不明ですが、昨今のコンピュータウイルスはWordやExcelなどのOffice製品が発端に感染するものが多いです。

それに対応した設定変更だと推察します。

そのためなるべく設定は厳しい状態にしておくことをおすすめします。

非推奨な設定は極力避けましょう。