8

数年前に vb6.0 と SQL Server 2000 を使用してアプリケーションを開発しました。最近、一部のお客様から、OS として Winxp sp2 を使用する一部のコンピューターでアプリケーションを実行しているときに、検索フォームを表示しようとすると次のエラーが発生するという報告がありました。

「実行時エラー 380: 無効なプロパティ値です」

このエラーの原因は何ですか?

4

13 に答える 13

9

あなたのアプリケーションはマスクされた編集ボックスを使用していると思いますか? これは比較的よく知られた問題であり、Microsoft によって次のように文書化されています。

http://support.microsoft.com/kb/177088

この記事では VB4 と 5 について言及していますが、VB6 についても同じことが言えると確信しています。

編集

さらなる調査で、他のコントロールでもこの​​問題への言及を見つけています。XP を実行しているユーザー向けに Windows XP でアプリケーションを再コンパイルすると、おそらく動作するバージョンが生成されますが、理想的な解決策ではありません...

于 2009-12-30T09:37:27.913 に答える
7

私の経験では、このエラーのもう 1 つの一般的な原因は、Form_Resize数学を使用してフォーム上のコントロールのサイズを変更するイベントのコードです。コントロール ディメンション (HeightおよびWidth) は負の値に設定できないため、イベントで次のようなコードを使用Form_Resizeすると、このエラーが発生する可能性があります。

Private Sub Form_Resize()
    'Resize text box to fit the form, with a margin of 1000 twips on the right.'
    'This will error out if the width of the Form drops below 1000 twips.'
    txtFirstName.Width = Me.Width - 1000
End Sub

上記のコードでは、フォームのサイズが 1000 twip 未満に変更された場合、「無効なプロパティ値」エラーが発生します。これが問題である場合、最も簡単な解決策はOn Error Resume Next最初の行として追加することです。これにより、これらの種類のエラーは無視されます。On Error Resume Nextこれは、あなたの友達がVB6 のまれな状況の 1 つです。

于 2009-12-31T03:46:27.087 に答える
5

実行時エラー 380の原因は何ですか? オブジェクトまたはコントロールのプロパティを許可されていない値に設定しようとしています。検索フォームがロードされたときに実行されるコード (Form_Load など) を調べて、プロパティを実行時の値に依存するものに設定するコードを探します。

私の他のアドバイスは、エラー処理とログを追加して、エラーの原因となっている正確な行を追跡することです。

  • 「Got to X」、「Got to Y」などのコードを介して Sprinkle ステートメントをロギングします。これらを使用して、エラーの正確な場所を見つけます。テキスト ファイルまたはイベント ログに書き込むか、 OutputDebugStringを使用できます。
  • エラー処理 エラーのスタック トレースを取得する方法は次のとおりです。以下のコードのように、関連する可能性のあるすべてのルーチンにエラー ハンドラを追加します。必須の無料ツールMZToolsは、これを自動的に行うことができます。また、行番号を報告して正確な行を見つけるために使用することもできErlます - MZTools は自動的に行番号を入力できます。

_

 On Error Goto Handler
   <routine contents>   
 Handler: 
   Err.Raise Err.Number, "(function_name)->" & Err.source, Err.Description 
于 2009-12-30T10:21:21.750 に答える
2

日付に使用されたマスクされた編集ボックス コントロールで同じ問題が発生しました。エラーは、ウィンドウの地域設定の日付形式プロパティが原因でした。「M/d/yyyy」を「dd/MM/yyyy」に変更すると、すべてうまくいきました。

于 2019-08-24T11:21:04.177 に答える
1

古いスレッドですが、ここに答えがあります。

voyager で問題のあるフォント

すなわち。Corel スイートをインストールする場合は、いくつかの言語オプションを削除してください。プロセス モニターを使用してこれを掘り下げ、その理由を突き止めました。この 2 つのフォント ファイルが原因でした。

DFKai71.ttf dfmw5.ttf

同じ問題があり、windows\fonts フォルダーからこれら 2 つのフォント ファイルを削除することで修正されました。

于 2014-08-08T10:35:27.557 に答える
0

基本的に問題は、どのバージョンの O/S でプログラムがコンパイルされ、どのバージョンの O/S でプログラムが実行されているかという事実にあると思います。特に、プログラムが古いバージョンの dll および ocx ファイルでコンパイルされ、セットアップ中に最新の dll および ocx ファイルが保持されている場合に、同様のエラーを引き起こす更新された dll および ocx ファイルを多数見てきました。

于 2012-08-04T10:58:34.437 に答える
0

上記の回答は、プログラムを作成してコンパイルしているときのもののようですが、「Ex Libris」によるカードカタログCatalog.exeの一部であるベンダーのソフトウェアを使用していて、エラーも発生しています。Voyager

catalog-error.png http://img805.imageshack.us/img805/8275/catalogerror.png

Windows 7 32 ビット マシンが 2 台あります。新しいものではエラ​​ーが発生しますが、古いものでは問題なく動作します。Google で多くの調査を行った結果、この問題に関連して人々が言っ​​ていることの一部を以下に示します。おそらく、これらのいずれかがエラーの修正に役立つかもしれませんが、私にはうまくいきませんでした:

(David M のような) 他の人が言っていることから、MSVBM60.DLLライブラリに関連している可能性があると思いますが、私の両方のコンピューターで、このファイルはまったく同じ (同じバージョン、サイズ、日付など) のようです。

そのファイルに違いはなかったので、アプリケーションが使用できる他の (dll) ファイルを見つけようとしたので、Sysinternals によって Process Explorerを起動し、アプリケーションを調べました (ロードしてから、「接続するように指示するとクラッシュします」)。 ")、そして以下のスクリーンショットは私が見つけたものです。

screen1.png http://img195.imageshack.us/img195/2231/screen1oo.png

screen2.png http://img88.imageshack.us/img88/2153/screen2ao.png

screen3.png

さて、私は Windows / VB プログラマーではなく、ただのパワー ユーザーなので、何をすべきかについて知識が尽きたところです。ソフトウェア ベンダーに問い合わせたところ、Windows の再インストールを勧められました。それはおそらくうまくいくでしょうが、このプログラムは Windows 7 で実行できるのに、この特定のシステムの何かがエラーを引き起こしているということだけが私を悩ませています。最後に、これはすでに複数のマシンに展開されているイメージなので、一度 Windows を再インストールすることは大したことではありませんが、修正または回避策を見つけられれば、かなりの時間を節約できます。

于 2012-07-13T16:17:15.337 に答える
0

このエラーの原因の 1 つは、コードの非常にばかげたミスです。ActiveX のプロパティに適切な値が渡されていない場合も、このエラーがスローされます。

空の値が Font.Name プロパティに渡されるか、テキスト値が Height プロパティに渡されます。

于 2015-11-10T09:53:19.233 に答える
0

画面の境界の外にあるコントロール(ラベル、フレーム、テキストなど)を画面に配置している可能性があります。一部のコントロールの位置が変数に依存し、その変数が開始時に正しく定義されていない場合、このエラー メッセージが表示されることがあります。

両方のコンピューターで画面解像度が異なる可能性があります。そして、それが理由かもしれません。

プログラムのバグを見つけるには、すべてのサブルーチンに次の行を追加してください: on error resume next

これで問題が解決した場合は、すべてのサブでこの行を 1 つずつクリアし、問題が再発するかどうかを確認する必要があります。具体的なサブルーチンでこの行を削除した後に問題が再発すると、バグを格納しているサブルーチンがわかります。そこで検索すると出てきます。

Santos@etronorte.com

于 2013-10-20T01:42:41.800 に答える
0

多くの本当にばかげたことがこのエラーを引き起こす可能性があります。私が遭遇したのは、デフォルトで Windows 8 に含まれなくなったフォント、Courier New です。VB6 アプリケーションの名前は、フォームの 1 つにハードコードされていたため、起動時にメッセージが表示されました。

于 2014-07-07T16:55:51.040 に答える