使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
こんばんは、MukkuMukuです。
最終的にどのようなことが目標なのでしょう
レポートの内部動作ってけっこう複雑なので、目的によっては違う手順の方がよいのではと思ったりする。
ややこしい形の値の受け渡しにはTempVarを使うとスマートにできることがある
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
標準モジュールのプロシージャから、レポートをプレビュー表示した後で非連結項目に値をセットする処理があります。
処理の都合上、レポート詳細のFormatイベントで記述しにくいため、対処方法を調査していたところ、ページレイアウトを指定し直す等で表示できるようになりました。
'代入処理の後
R.Printer.Orientation = R.Printer.Orientation
これで解決したと思っていたのですが、新たな問題が発生してしまいました。
どういった条件かは分からないのですが、コントロールのVisibleを操作するとセットした値が消えてしまうことがあります(必ずではありません)。
Dim R As Report
DoCmd.OpenReport "R", acPreview
Set R = Reports![R]
R![ラベル1].Visible = False
R![テキスト1] = "出力テキスト"
R.Printer.Orientation = R.Printer.Orientation
Msgbox R![テキスト1] 'ここでは内容が表示される
Msgbox R![テキスト1] 'ここではNullになる
何か情報がありましたら宜しくお願いいたします。
使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
こんばんは、MukkuMukuです。
最終的にどのようなことが目標なのでしょう
レポートの内部動作ってけっこう複雑なので、目的によっては違う手順の方がよいのではと思ったりする。
ややこしい形の値の受け渡しにはTempVarを使うとスマートにできることがある
正直、現象としては納得できないのですが仕方ありません。
できればソフトの不具合と認識されて、修正される(元に戻る)ことを願っています。
なお、レポートを使用せずにフォームで印刷レイアウトを作成し、プレビューで開いて
同じように印刷させたときは消えないようでした。
こんばんは、MukkuMukuです。
なにがどこまでどうなったか全体をわかっていませんが、ちょっとずつ内部処理が変わっているようなことはあると感じています。今まで許容されていたことが許容されなくなったという感じかもしれません。
リファレンスにない事柄について問答しても、仕様です(キリッ)と言われてしまえばそれっきりですけど、不具合に起因するものなら別という感じかなと。
不具合だとしても数日で修正なんてことは現実的にあり得ないので、おっしゃる通り確実に動作するコーディングをするというのが最善だと私は思います。
ご回答ありがとうございます。
Publicの変数もしくはTempVarを使って、フォーマット時に処理するようにしたいと思います。
なお、「プレビュー後に値をセットする」というのは完全では無いのでしょうか?
この問題が発生したのは、2003以前のバージョンで作成していたものを2010に変換したときでした。
はじめはバージョン変換によるものかと思っていたのですが、新規で作成して同じコードでも駄目です。
2003までは問題なくセットされていたはずですので、2007と2010での現象のようです。
例えば、プレビュー → 値セット → PrintOut というような処理もあり(これは出力されていますが)、
確実という意味では作り替えるべきでしょうか?
パレビュー後に値をセットするというのは確実でないし、直接印刷する場合はセットできないし、なぜ、そのような事をする必要があるのか、理由が思いつきません。
詳細のフォーマット時ではなぜだめなのでしょうか。
あるいは、開くときとか、レポートヘッダーのフォーマット時とかではダメですか。
一番確実なのは、コントロールソースに式、あるいはユーザー関数を設定する方法ですけど。
上記の方法でダメな理由を説明してもらえたら、その対処法をアドバイスできるかもしれません。