VB6 SP6
Access 2003
Dim objAccess As Object
Set objAccess = CreateObject("Access.Application")
objAccess.DoCmd.OpenReport "レポート1", acPreview
objAccess.Reports("レポート1").Controls.Item("text1") = "1234567890"
こんな感じでレポートを表示させてるのですが、1ページ目に表示がされません。2ページ目以降は表示がされるのですが。。。
あっ補足です。
表示がされないのはtext1に"1234567890"が1ページ目だけ表示がされないです。
あと紛らわしい表題ですみません。。。
> こんな感じでレポートを表示させてるのですが
連結コントロールに変更し、OpenReport 前に DB に書き込んでおくとか。
> 1ページ目に表示がされません。
本来であれば、レポートセクションの Format イベントにて
処理すべきことなので、OpenReport の後では遅いかと思います。
1 ページ目から反映させたいのであれば、呼び出し側は
.OpenReport 〜〜, OpenArgs:= "1234567890"
のようにしておき、レポートのLoadイベント(またはセクションのFormat)に
Me.Controls.Item("text1") = Me.OpenArgs
のような VBA コードを埋め込んでおく、というのはいかがでしょう。
魔界の仮面弁士さんご回答ありがとうございます。
せっかく回答いただいたのですが、VBVにDataReportという存在を発見したのでその手法で何とかできました。。。
ちなみに・・・
Dim cn As Object
Dim rs As Object
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=DBのパス"
Set rs = cn.Execute(strDR)
Set DataReport1.DataSource = rs
DataReport1.Sections("Section2").Controls!Label1.Caption = "1234567890"
DataReport1.Show
ほぼ自己解決でした。魔界の仮面弁士さんすみません。。。
ツイート | ![]() |