クエリから実行されるレポートがあります。クエリはグローバル変数を使用しますが、これは問題ではありませんが説明のために必要です。変数の機能は次のとおりです。SQLクエリー後にMS Accessデータベースフォームが更新されない
Function Var1() As String
Var1 = strVar1
End Function
文があるクエリ:
実際の計算であり、それがある基準がフィールド上にVAR1機能を使用しています
WHERE (((IIf([MinOfDueDayMin]<0,0,Int([MinOfDueDayMin]/7)+1))<Var1()+1) AND ((tblEquipment.Retired)=False))
私は問題が始まると思う。
レポートは、次のコードを使用して別のフォーム上のコマンドのために実行されます:
strVar1 = InputBox("Enter Number of Weeks for report")
If strVar1 = "" Then Exit Sub
DoCmd.OpenReport "rptEquipPmSchedule", acViewReport
すべてが、私は、フォームを開くダブルクリックイベントを持っているレポートで
だけで正常に動作します。このフォームは同じクエリの一部を使用します。 (同じものではなく、2つ以上のレベルではない)、ユーザは物事を変更できるので、私はレポートのために再クエリを使用することを期待しています。
私はダブルクリックしてからも、私は私がレポートのActivateイベントでme.requeryを入れて計算
を持っている分野で#ERRORを持って戻ってレポートに戻り、その後何も変更していない場合。これはうまくいかなかった。私は回避策を試しました。
レポートフィールドをダブルクリックすると、レポートが閉じられ、strVar1値が開いたフォームに送信されます。私はフォームを閉じると、strVar1が失われてしまった場合に備えて、別のユーザー(現在は私がこれを使用している唯一の人ですが、正しい値を持っていることを確認しました)再びエラーは発生します。私はこれをまったく期待していませんでした。最初からレポートを開始すると思うのは確かにうまくいくでしょう。私はstrVar1を割り当てた直後にフォームを閉じました。
最終的には努力しています。私がフォームを閉じると、まったく同じコードを実行します:
strVar1 = InputBox("Enter Number of Weeks for report")
If strVar1 = "" Then Exit Sub
DoCmd.OpenReport "rptEquipPmSchedule", acViewReport
これにより、ユーザーはstrVal1の値を入力する必要があります。これは私が望むものではありませんが、トラブルシューティングのためにこれを試しましたが、私はまだ#ERRORを取得します。
同じフィールドを持たないフォームに対してレポートを実行すると問題は発生しません。レポートを実行するか、同じデータを持つフォームからクエリーを開いたままにしておくと、レポートで正しい結果が得られません。クエリ自体を実行すると、クエリのデータが正しいことに注意してください。
また、クエリでVal1()の代わりに数字を使用してみましたが、同じ結果が得られました。
また、リボンでリフレッシュボタンを試して、不明な関数名を取得すると、レポート内のすべてのデータが失われます。
誰でもアイデアがありますか?
問題はstrVal1の値を保持していません。 – Charlie
私は明らかに説明していないので、私は異なって説明しようとします。問題は、strVal1の値を保持していませんが、オプションとして値を維持するために開いたままのフォームを使用する考えが好きです。私はレポートを実行したい。ユーザーがレポートに情報を表示して編集したい場合は、フォームを開いて編集できるシリアル番号(一意のID)をダブルクリックするオプションを与えたいと思います。 – Charlie
完了したらフォームを閉じて、レポートを新しい情報で更新し、ユーザーがstrVal1の値を入力する必要がないようにします。しかし、たとえそれを再度入力しても、レポートが再度実行されるか再照会されたときに#ERRORになります。 – Charlie