2011-01-21 22 views
1

お客様のサイトでこの障害が発生しています。特定のコントロール上でマウスを動かすまで、「計算中...」のアクセスが停止しません

1つのワークステーション(Access2K3にはタッチスクリーンがあります)では、キーフォームの1つに、左下隅に「Calculating ...」と表示されていることが報告されました。

マウスをちょっと揺らしてもう一度画面を「解放」することができたことを除いて、これが真実であることがわかりました。その後、特定のテキストボックスに移動します。このテキストボックスの上にマウスを移動すると、画面を放すことができ、すべてが正常に機能します。

テキストボックスには、読み取り専用の財務データが表示されます。当然のことながら、テキストボックスは解放されるまで空白になり、その後は正しいデータが表示されます。

このコントロールのMouseMove、MouseDown、またはMouseUpイベントはありません。他のコントロールもありません。 Textboxのcontrolsourceはまったく自明ではなく、IFで構成され、VBA関数も使用します。しかし、同様のタイプの複雑なコントロールソースは、アプリ内の他の場所でも繰り返し実行され、問題は発生しません。この特定のコントロールでも、他のマシンで問題は発生しません。

誰もこれを経験していますか?

また、デバッグの目的で、Accessが「計算中...」と報告したときに、何分後に何が起きているのかを特定する方法はありますか?

+0

2つの考え... OnCurrentのように、テキストボックスに他のイベント(マウス以外)がありますか?そして、あなたは別のタッチスクリーンでそれを試しましたか?おそらく、画面に何か間違った/固まっていることがあります。そして、それは "運がいい"となり、どこかでコントロールを起動しています。 – BIBD

+0

アプリケーションがフリーズしているときのCPUの負荷は?最大化されたかどうか? – HansUp

+0

アプリケーションでEchoまたはSetWarningsがオフに設定されていますか? – HansUp

答えて

3

条件付き書式設定を使用するときに同様の問題が発生しました。 Form_Currentイベント、依存制御のAfter_Updateイベントを経て、

  1. ディッチ条件付き書式とIEのコード(から手動で書式を適用します。私は問題に実行したとき、私はそれが2つの異なるアプローチを使用して解決しました、など)。明らかに、これは、連続したバインドされたフォーム上のコントロールを区別しようとしている場合は機能しません。その場合は、他のオプションを使用します。

  2. 条件付き書式自体を手動で追加および削除します。なぜ私は完全にこの作品が動作しますが、それはありません。このテクニックを示す簡単な関数例を示します:

Private Const DefaultHLColor As Long = 10092543 'RGB(255, 255, 153); Light Yellow 

'--------------------------------------------------------------------------------------- 
' Procedure : HighlightRow 
' DateTime : 2/22/2008 3:27 
' Author : Mike 
' Purpose : Highlight the detail section of a continuous form. 
' Usage  : 1) Add a textbox bound to a unique field (preferrably the primary key) 
'    to a form set to continuous view. 
'    2) Set Enabled = No, Locked = Yes, BackColor = {Detail Section BackColor}, 
'     BackStyle = Normal, SpecialEffect = Flat, ForeColor = BackColor 
'    3) Expand the textbox to fill the entire detail section, Send to Back. 
'    4) Move it down one pixel ([Ctrl] + [{down arrow key}]) 
'    5) Add the following to the form's OnCurrent event: 
'    =HighlightRow([{TextBoxName}]) 
' Notes  : We could simply Refresh the form in the OnCurrent event, but Access 
'    (2002, at least) does not have a rock solid implementation of conditional 
'    formatting. The problem with Refreshing the form occurs when we select 
'    a record (which gets highlighted), then we scroll the form so the 
'    highlighted record is no longer visible, then select a new record, and 
'    scroll back to the previous record to see that, sadly, it is still 
'    highlighted. 
'--------------------------------------------------------------------------------------- 
' 
Function HighlightRow(Ctl As TextBox, Optional HLColor As Long = DefaultHLColor) 'vv 
    On Error GoTo Err_HighlightRow 

    Application.Echo False 
    With Ctl 
     .FormatConditions.Delete 
     If Ctl.Parent.CurrentRecord <> 0 Then 
      If Not IsNull(.Value) And Not IsEmpty(.Value) Then 
       If IsNumeric(.Value) Then 
        .FormatConditions.Add acFieldValue, acEqual, .Value 
       Else 
        .FormatConditions.Add acFieldValue, acEqual, """" & .Value & """" 
       End If 
       .FormatConditions(0).BackColor = HLColor 
       .FormatConditions(0).ForeColor = HLColor 
       .FormatConditions(0).Enabled = False 
      End If 
     End If 
    End With 

Exit_HighlightRow: 
    Application.Echo True 
    Exit Function 
Err_HighlightRow: 
    LogError Err.Number, Err.Description, "HighlightRow" 
    Resume Exit_HighlightRow 
End Function 
+0

私は次回に顧客を訪問してみると – hawbsl

+0

私はそれをテストすることができませんでしたが、私はあなたの答えを受け入れるつもりです - それは良いことがあるようです次回に試すアイディア – hawbsl

0

ステータスバーのテキストを好きなように設定できます。処理タスク

Application.Echo True “Your Text Goes Here” 

いけないの末尾に次の行を使用してみてください、それは上で、マウスにクリアされるだろう、なぜ知っています!

+0

ありがとうございますが、私は "計算中"のメッセージを隠したくありません。 – hawbsl

1

私はこの質問が回答されていることを知っていますが、私は人々を助けるかもしれない奇妙な回避策を見つけました。

Access 2007の大きなレポートでは、上記の問題と同様に、ステータスバーに「計算中...」と表示されているときに条件付き書式が詰まっていました。しかし、レポートをサイドバーで選択して開くときにのみ発生することがわかりました。

OpenReportコマンドをトリガーするボタン+埋め込みマクロを備えた偽ツールバーとして機能するフォームを作成しました。このように開いた場合、レポートはすぐに開きます!確かに奇妙なことですが、条件付き書式を維持することができました。

これは他人を助けてくれるはずです。デザインモードでは、レポートモードに切り替えるとハングアップする可能性があることを忘れないでください。それを閉じて、faux-toolbarボタンを使用します。

EDIT:上記から、ボタンが印刷プレビューモードで開くので、これが機能することがわかりました。レポートモードで停止します。

0

これはAccess 2013で新たに追加されたものです。私はすべての条件付き書式を再適用し、問題は解決しました。

+0

「Access 2013で修正済み」という意味ですか? Access 2013にはまったく新しい*がありません。 –

+0

いいえ、Access 2013にエラー/バグ/グリッチが含まれていることがあります。条件付き書式設定によってAccessを無限の「計算中...」ループにプッシュすることがあります。条件付き書式を再度適用すると、この問題は未知の理由で解決されます。 この問題は、Access 2007および2010で定期的に開発している同僚がこれまでに遭遇したことはないため、2013年には新しいようです。 –

1

私はまさにこの問題(Access 2010)を持っています。私はフォームとサブフォームを持っています。サブフォームには、選択したレコードを強調表示するための条件付き書式設定がありますが、すべてのフィールドに書式設定があります。 フォーム上にsubform.allowedits = trueを実行する[編集]ボタンがあります

ボタンを押してマウスをサブフォーム上に移動しても問題ありません。編集ボタンを押して、サブフォーム上の条件付きでフォーマットされたフィールドにマウスを移動すると、マウスをサブフォームから離したり、サブフォーム上の非cond.formattedフィールドに移動したりするまで、点滅/リフレッシュを続けます。

上記のように動作しているようですが、(選択した状態を表示するために1つのコントロールを使用する)この方法の欠点は、コントロールの色を黒に設定し、他のコントロールを黒色のテキストに設定すると、テキストを読む。

もちろん、単純な解決策は、背景を黒くしないことですが、別の「問題」は、テキストボックスにフォーカスすると、背景がテキストボックスから見えなくなり、見栄えが悪くなるということです。

私は1つのコントロールをフォーマットするだけで動作します。 上記のコードを使用して、すべてのコントロール(余分なコントロールは不要)のフォーマットに適用すると、問題は解決しました。

関連する問題