#024 関数をコントロールソースとするテキストボックスで#Name?エラー VBA

開発用のパソコンでは何の問題もなく画面表示していたのに、ユーザーのパソコン上で動かすと、 "=Date()" や "=Time()" などの基本的な関数しか使っていないにも関わらず、フォーム上でそれらをコントロースソースとするテキストボックスに "#Name?" と表示されてしまう場合の回避策です。

このような症状の原因の一つとして考えられるのが『参照設定』の問題です。

いろいろなソフトウェアをインストールしたり、インターネットを利用したりしていると、さまざまな ActiveXコントロール がパソコン内にインストールされます。Accessで作っているフォームに、Access標準のコントロールや、意識してそれ以外のActiveXコントロールを挿入するのならいいのですが、"ちょっと試しに"と、本来そのアプリケーションに必要でないActiveXコントロールを一度挿入すると、フォームのデザイン上でそのコントロールを削除しても、そのコントロールの .OCX や .DLL に対する「参照設定」が残ってしまうことがあります。そしてそのMDBファイルをユーザーに配布すると、参照設定が保たれたままユーザーが使うことになるので、それらのファイルがユーザーのパソコンに無いことによってエラーが発生するわけです。ここでは、Date関数やTime関数で直接エラーが発生しているのではなく、ライブラリファイルも含めたコード全体でコンパイルエラーのような状態になって、関数が正しく実行されないと考えられます。

そのような状況になったら、まずフォームのモジュールウィンドウを開いた状態で、Accessのメニューから[ツール]-[参照設定]を選択し、「参照可能なライブラリファイル」の一覧で不必要なライブラリファイルにチェックが付いていないか確認してみましょう。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved