投稿日 | : 2007/07/26(Thu) 15:54 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re^6: プレビュー印刷後に印刷したいのですが |
> #プロパティを使わないと無理なら少々妥協してもかまわないかも
どのプロパティの話なのかを読み取れませんでした。。。
(設計時であれ実行時であれ、何らかのプロパティは使うことになるはず)
RptLabel の Caption プロパティを実行時に指定したい、という意味なら、
'==== DataReport1
Option Explicit
Private Sub DataReport_Initialize()
'ヘッダ セクションの Label1 に、今日の日付を表示
Me.Sections("Section2").Controls("Label1").Caption = FormatDateTime(Now)
End Sub
などのように書けます。
> このコードの場合DataReport1.DataMenber = "" の""部分を "登録者マスタ"
> と書き換えればいいわけですね?
# DataMenber → DataMember ですね。
DataSource に DataEnvironment を渡す場合は、DataMember にコマンド名を指定します。
DataSource に Recordset を渡す場合は、DataMember を 空にしておきます。
(これらは、実行時に設定するのでも、デザイン時に設定しておくのでも構いません)
また、グループヘッダ・グループフッタ等を含む、グループ化されている帳票の場合は、
DataReport1.DataMember だけでなく、RptTextBox 等の DataMember に、
子コマンド名(チャプタ名)を指定する必要があります。
> #ついでに使うか分かりませんがSQL構文を
> # mysql = "SELECT * From 登録者マスタ" & " Where 登録No = " & txtNo
> # Set rs = Conn.Execute(mysql)
> #もし使うのであればこのコードをどこに入れればいいのでしょうか?
呼び出し側(たとえば フォームのボタンクリック時)などにおいて、
Set DataEnvironment1.DataSource = rs
DataEnvironment1.Show
などとすれば、任意の Recordset を渡すことができます。
また、データベースに接続しない、オンメモリのレコードセットを指定する事もできます。
(下記は非階層の例ですが、オンメモリの階層レコードセットも使えます)
'=== Form1 にボタンを貼り、以下の記述を行います。
' また、DateReport1 に RptTextBox を 2 つ 貼り、DataSource に「列1」「列2」を指定しておいてください。
Option Explicit
Private Sub Command1_Click()
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Fields.Append "列1", adInteger
rs.Fields.Append "列2", adVarWChar, 30
rs.Open
rs.AddNew Array("列1", "列2"), Array(123, "あああ")
rs.AddNew Array("列1", "列2"), Array(234, "いいい")
rs.AddNew Array("列1", "列2"), Array(345, "ううう")
rs.AddNew Array("列1", "列2"), Array(456, "えええ")
With New DataReport1
Set .DataSource = rs
.Show vbModal, Me
End With
End Sub
> 少々疑問に思ったのですが、この場合印刷プレビュー後に一度操作画面に戻りデータ変更をした時、
> 印刷プレビューと印刷物は変更されたデータベース通りに出てきますか?
それは、試してみればわかりますね。