FE社との約束の忘れ、催促の電話があり慌てて出かけた。
「帳票が数ページ出るはずなのに1ページしか出ない」と言う...
トレースすると、次のコードの 1〜2 が効いていないようだ。
1. If strWhere = "" Then 2. DoCmd.OpenReport reportName, intView 3. Else 4. DoCmd.OpenReport reportName, intView, , strWhere 5. End If 6. BOOLAns = Zoom_Report() 7. Do While Is_ReportLoaded(reportName): DoEvents: Loop
- ヘルプの確認
OpenReport メソッド 関連項目対象使用例アプリケーション情報Visual Basic で "OpenReport/レポートを開く" アクションを実行します。expression.OpenReport(ReportName, View, FilterName, WhereCondition, WindowMode, OpenArgs)
- 1〜4 を 4 のみに書き換えても効果ない。以前使った WhereCondition が残ってしまう...
先方のパソコンがノート型でマウスもない。プリンターも使い難いので、USB にコピーし持ち帰った。
- 自宅のソースとバージョンは同じだ。
- 上記 1〜5 を試行錯誤し、次のように書き換えたら、上手くいった。
If strWhere = "" Then Me.FilterOn = False DoCmd.OpenReport reportName, intView Else Me.FilterOn = True DoCmd.OpenReport reportName, intView, , strWhere End If
しかし、何故これで上手くゆくのか解らない‥‥
Me.FilterOn の Me は何を指すのだろうか? もう少し、試行錯誤してみる必要がある...