2017-03-24 6 views
1

を実行しない:レポートがプレビューモードで開いているときに私はこの質問に簡単な答えのために数日を探している場合はMS-AccessレポートのVBAコードが

は、レポートの実行に/後ろのVBAコードをい隠されていますか?

非常に長く複雑なVBAモジュールが添付されたレポートを持つP-O-S(Point-Of-Sale)Access 2003データベース(ほとんどがドイツ語で書かれています)を継承しました。プレビューモードでレポートを実行するときに実行するコードが必要ですが、プレビューモードでは実行されません。

レポートは次の行でフォームから呼び出された:私は次の行

DoCmd.Close acReport, "Fertigungszettel", acSaveNo 

問題でフォームを閉じる

DoCmd.OpenReport "Fertigungszettel",acPreview, , , acHidden 

は、コードが/の後ろに/添付ということですレポートには実行されていないようです。アクセスコードを実行するための時間を持っていたように私は、私はレポートのVBAに

Private Declare Sub Sleep Lib "kernel32" (ByVal dwmilliseconds As Long) 

Public SleepPls(ByVal ISecs As Long) 
    Sleep(ISecs * 1000) 
End Sub 

を以下を追加しました多分私は閉鎖を遅らせるために必要な思考と私はこのようにそれを呼び出すために行を追加しました:

SleepPls(10) 

しかし、それは違いはありませんでした。

誰でもこれを私に説明したり、簡単な方法でこれを説明するどこかで私を指摘することができます。私はDevのものではない上層部の経営陣にこれを説明しなければならないので、簡単な方法を求めます。 (程遠い)。

ありがとうございます。

+0

チェックで実行するの背後にある既存のコードを強制することができると思い

Private Sub Report_Click() ... End Sub 

のようなコードが背後に見えることだと思います。 – geeFlo

+0

一部のコードを実行するためだけにレポートを開くと、そのコードはレポートに属しません。必要なときに実行するためには、一般的なモジュールでなければなりません。 – Andre

答えて

1

MS Accessでは、レポートやその他のオブジェクトには一連のプロパティがあります。レポートのデザインビューに入り、レポート全体のプロパティを選択すると、右側に一覧が表示されます。一番上には、フォーマット、データ、イベントなどがあります。イベントが発生すると、実行するコードをトリガーする "On ... 'のリストが表示されます。 "On Current"、 "On Load"、 "On No Data"などと同様です。

VBAコードは、これらの1つ以上に添付することができます。したがって、コードが "On Mouse Up"のようなイベントに添付されているため、プログラムでプログラムを開いても実行されません。

イベントにコードがどのように関連付けられ、正しい方向に誘導するのかを確認します。おそらく、別のイベントにコードをアタッチすることもできますし、実行したいコードのコードを直接呼び出すこともできます。

更新:コードビハインドが「オンクリック」に添付されていることを示します。私はので、私はあなたのコードの中であなたが開く時またはアクティブイベントがありますかどうかを確認するために

DoCmd.OpenReport "Fertigungszettel",acPreview, , , acHidden 
Call Forms("Your form name").Report_Click() 
+0

ボタンのOnClickイベントにコードが添付されています。私はコードを作成しませんでした。私はそれに追加している、または少なくともしようとしています。 – mbcharney

+1

「ボタン」の詳細を記入してください。レポートにボタンが表示されるのはなぜですか?ボタンが決してクリックされず、プレビューモードでクリックできないため、レポートがプレビューされて非表示になっていると、なぜ最初に実行されると思われますか? Knoxの解決策はうまくいくかもしれませんが、コードをOnClickや別の適切なイベントから呼び出せる別の関数にプレビューする必要があります。 –

+0

@ cade-perkinsには良い点があります。私はコードがボタンについていることに気付かなかった。コードが何をしているかに応じて、レポートを開く前にコードを実行することが理にかなっています。この場合、openReportを実行する前にコールを移動することをお勧めします。また、ボタンをクリックすると、コールは コールフォーム(「フォーム名」)のようになります。Command32_Click – Knox

関連する問題