私はAccessで奇妙な状況に陥っています。通常、Invalid use of Nullエラーは非常に簡単なことです - 文字列変数などにnullを代入します。しかし、私はそれが起こってはいけないはずの場所にエラーが表示されます。MsAccessのDoEventsステートメントで "Nullの無効な使用"エラーが発生しました
bch = Form_Akces.txtMaxCisla.BackColor
If Err <> 0 Then Stop
Form_Akces.txtMaxCisla.BackColor = vbYellow
If Err <> 0 Then Stop
DoEvents
If Err <> 0 Then Stop ' This is where I get the error
With qdf_GPsp
何が起こっされていますが、私は通常は私はしばらくの間でコードを実行する最初の時間に、唯一時々このエラーが出るということです。ここでは、コードスニペットです。データベースを閉じて直ちに再オープンすると、通常はエラーは発生しません。私はかなり長い間私を運転しています。だから、これらのすべてを "If Err <> 0 Stop then"ステートメントに入れて、どこで発生したかを追跡しようとしています。これはライブシステムであり、ユーザーは単にアプリケーションを再起動することを知っていますが、大規模なPIAであり、起動するのに恥ずかしいものです。
誰かが試してみるか何かを考えることができますか?私はアクセスのアマチュアではありませんが、これは私がこれまで走ったことのないものの外にあります。 DoEventsステートメントがこのようなエラーを生成する理由は何ですか?特に、前のステートメントでもこのようなエラーが発生していても、プロセッサがエラーをスローするまで何らかの '保持' 。私がDoEventsを取り出すと、私は単に同じエラーを多少下に辿ります。 txtMaxCislaはForm_Akcesのフォーム上の非連結テキストフィールドで、そこからこのコードを含むルーチンが呼び出されます。これは起動時にのみ実行されます。すべてがロードされて実行されると、これは再び発生しません。そしてそれはしばらくの間しか起こらず、私が検出できたパターンはありません。
数ヶ月間、コンパイル、デコンパイル、再コンパイル、圧縮、修復のサイクルを経ていますが、時にはそれが別の場所で発生することを除いては分かりません。
- 更新*
運 - それはまだクラッシュ、と私は見ることができます絶対に理由もなく。ここでは、コードは今だ:
Public Sub ReloadMaxNumbers(tmc As TextBox)
Dim rst As DAO.Recordset, x$, xb$, xe$, bch&
On Error GoTo 0
If Err <> 0 Then Stop
DoEvents
If Err <> 0 Then Stop
...
コードが同じエラー、「NULLの使用が無効です。」と、DoEventsをした後、第二の試験で停止します。私はこのコードが完全に遅れていることに気がついていますが、それはエラーの根本原因を突き止めるために追跡し直した結果です。これがなければ、この同じエラーでどこかの道がさらに崩壊します。この時点で、私は他に何か試みることは考えられません。
私は同じ問題を抱えていますが、解決策が見つかったらフィードバックをお送りします。 – celerno