• 締切済み

Access2000レポート

条件によって、レコード一件ずつ、詳細セクションの高さを変えたいんですけど、 Me.Section(0).Height=変数 (変数は、条件によってレコード一件ずつ変わります) で出来ないんです... 何か間違っていますか?

みんなの回答

  • teppy
  • ベストアンサー率50% (9/18)
回答No.4

はい、マズイ点と言うか、何でこうじゃないといけないの? というかアクセスのバグなのか、よく分からないのですが、 詳細セクションの"高さ"プロパティ変更コードを、他のプロパティ変更コードよりも後に持ってきて下さい 今回のコーディングでは、 '~~~~~~~~~~ If i_cnt <= 1 Then Me.Section(0).Height = 240 Else hei = 240 * i_cnt 'Me.Section(0).Height = hei 'コメントアウト Me!w_a.Height = hei Me!直線20.Height = hei Me!直線21.Height = hei Me!直線22.Height = hei Me!直線23.Height = hei Me!直線24.Height = hei Me!直線25.Height = hei Me!直線12.Top = hei Me.Section(0).Height = hei '←ここに移動 End If '~~~~~~~~~~ こうする事が望ましいと思われます (もちろん、詳細のフォーマットイベントプロシージャで行います) アクセスは、フォームで出来る事が、レポートでは出来ない場合が多いので苦労します(T_T) (または別の手順で行う...)

Kalen_F
質問者

お礼

早速試してみたんですけど、ダメでした... 条件のi_cntのIf文で、可変にならないんです!(-_-;) ある程度、Accessのレポートは使いこなしてきたつもりでしたが、こんなちょっとした設定にここまで悩まされるなんて、思いもしませんでした。悔しい~!!(ーー;)

  • teppy
  • ベストアンサー率50% (9/18)
回答No.3

こんなサンプル文を作成してみました 奇数行だったら、高さ1000 twip 背景色を赤色にする 偶数行だったら、高さ500 twip 背景色を黄色にする にするコーディングです '~~~~~~~~~~ Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) Static a As Integer a = a + 1 If (a Mod 2) = 0 Then Me.Section(0).Height = 1000 '高さを1000twipにする Me.Section(0).BackColor = 255 '背景色を赤色にする Else Me.Section(0).Height = 500 '高さを500twipにする Me.Section(0).BackColor = RGB(255, 255, 0) '背景色を黄色にする End If End Sub '~~~~~~~~~~ このままレポートの詳細のフォーマット時イベントプロシージャに貼り付けて確認してみてください もし、これでもダメな場合は、 どのようなエラーメッセージ?等がでるのか教えて下さい (またはどのような状態か?) 何度もすみませんm(_ _)m

Kalen_F
質問者

お礼

返答が遅くなってしまって、すみません!! Ifの条件には、 For i = 55 To 1000 Step 55 i_cnt = i_cnt + 1 If len_wa <= i Then Exit For End If Next i のi_cntの値で試してみたんですけど、どうもこの先で、 If i_cnt <= 1 Then Me.Section(0).Height = 240 Else hei = 240 * i_cnt Me.Section(0).Height = hei Me!w_a.Height = hei Me!直線20.Height = hei Me!直線21.Height = hei Me!直線22.Height = hei Me!直線23.Height = hei Me!直線24.Height = hei Me!直線25.Height = hei Me!直線12.Top = hei End If としたら、可変にならないんです。 教えて頂いた、色で可変の文なら上手くいってたんですよ。 どこかマズイ点、ありますか?

  • teppy
  • ベストアンサー率50% (9/18)
回答No.2

その後、どのようになったでしょうか? もしダメでしたら、以下のことについて教えて下さい (1)レポートの種類は「単票」ですか?それとも「帳票」ですか? 詳細セクションのプロパティ→「書式」→「改ページ」にて確認できます ※ページヘッダー(フッター)または、グループヘッダー(フッター)が付加されていない状態で、"しない"だと「帳票」です (2)現在の詳細セクションの「高さ」はどのくらいですか? 詳細セクションのプロパティ→「書式」→「高さ」にて確認できます 前回のコーディングで、 >詳細.Height = 2000 と書きましたが、これはtwip単位で記しております twip単位とは... 「1cm」は、「567twip」です( 1 cm = 567 twip ) もし、前回のコーディングをそのまま使用していれば、(条件文だけ変えて...) 「高さ」の値が"3.5cm"以上だと視覚的にどのように動作しているか分からない状態になってしまいます あと余談ですが、詳細セクションにあるテキストボックスのプロパティの「書式」→「印刷時拡張」を"はい"にすると、文字量が多ければ自動で詳細セクションが拡張されます

Kalen_F
質問者

補足

レポート自体は、帳票式で、 現在の詳細セクションの高さは、0.46cm  (twipの記載では、240) 詳細セクションのテキストの、印刷自動拡張は、"いいえ" になっています。 これで、何か原因が見つかれば良いのですが... どんなもんでしょう?(-_-;)

  • teppy
  • ベストアンサー率50% (9/18)
回答No.1

詳細セクションのフォーマットイベントを使用しましょう '~~~~~~~~~~ 'サンプル(IF文には、条件を指定して下さい) Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If (CSng(Me![Ver]) Mod 2) > 0 Then 詳細.Height = 2000 Else 詳細.Height = 1000 End If End Sub

Kalen_F
質問者

お礼

ご返答、有難うございます! 試してみたのですが、Ifの条件分岐を使っても、ダメでした...(ーー;)

関連するQ&A