• 締切済み

Access2000レポート

teppyの回答

  • 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のレポートは使いこなしてきたつもりでしたが、こんなちょっとした設定にここまで悩まされるなんて、思いもしませんでした。悔しい~!!(ーー;)

関連するQ&A

  • Accessレポートの詳細の高さ(VBA)

    Accessのレポートの詳細のフォーマット時に Me.Section(0).*** とすると色とかかえられますよね? それと同じように高さを変えたいと思い、 Me.Section(0) =0 としてみたのですが、変わりないようです。 中のテキストボックスとかも関係あるのかと思い、すべてを Me!オブジェクト.height=0 としてみましたがやっぱりダメでした。 詳細の高さを変えるにはどうしたらいいのでしょうか?

  • Accessレポートで1行おきに色を変える

    Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer) FontCount = FontCount + 1 If FontCount Mod 2 = 1 Then Me.Section(0).BackColor = 16777215 Else Me.Section(0).BackColor = 16777164 End If End Sub としてみました。 ですが何らかわりなく… 試しに Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer) FontCount = FontCount + 1 If FontCount Mod 2 = 1 Then Me.Section(0).BackColor = 16777215 Else Me.Section(0).BackColor = 16777164 End If MsgBox FontCount End Sub としてみたところずーっと「1」が表示され、変数がかわってないようです。 いったいどこがダメなのでしょうか? 確か以前できたはずなのに…(><)

  • [Access・レポート]ページのちょうど中央に切り取り線

    レポートは詳細セクションのみで構成、詳細セクションがA5ヨコサイズ、印刷用紙サイズは常にA4タテで、レコード件数が2件なら1ページの上下に2件印刷され、3件なら2ページ目の下半分が余る、というレポートを作成しました。 実務では、印刷した用紙をハサミで半分に切り、A5バインダーに綴じますので、レコードの境界に切り取り線を印字したいのですが、詳細セクションの下端に線を引いただけではうまくいきませんでした。 レイアウト上、余白として必ず上下10ミリずつを要するため、ページ設定で行間隔を20ミリとすると… (=A4用紙高さ297ミリを順に、上余白10・奇数件目詳細セクション128.5・行間隔20・偶数件目詳細セクション128.5・下余白10-ととると)、 ページ中央の線は、まさに行間隔の中央でありそこに線はひけない…! 次に、詳細セクションを138.5ミリとすると、セクションの下端がちょうどページ中央となりますが、行間隔0ミリとしなければ1ページに2件のレコードは収まらず、これだと切断後、文字等の上位置が揃いません(偶数レコードが、奇数レコードよりも20ミリ上に印字されてしまいます)し、用紙の下から10ミリの位置に不要な線が印字されてしまいます。 詳細セクションのフォーマットイベントにいろいろプロシージャを講じたのですが、行き詰まっています。  *A4用紙に2件のレコードを印刷  *ページ中央に切り取り線を引きたい  *用紙切断後、文字などの高さはぴったり揃える  *用紙の余白上下10ミリずつ  *詳細セクションの内容は、上から下までテキストやラベルぎっしり どなたか素晴らしいアイデアをお授け下さい!宜しくお願いします。

  • Access2.0でフォームのイベントについて

    お世話になっております。 ムカーシのAccess2.0システムを改造しなくてはならず、当時の文献を読みあさっています。 Access2.0でフォーム中に一覧表という形で、「詳細」セクションへある数件のレコードを縦並び、スクロールバーで表示させているのですが、これをある条件下で、詳細ごとに、詳細セクション中のコントロールを表示・非表示したいと考えてます。(もっといえば、詳細セクションの高さもそれに併せて調整したく思ってます。) で、問題になるのはイベントだろうと思うのですが、そういったイベントが見あたらないのです。 もしかして、機能的にそうなっていないのでは・・・などおもったりするのですが・・・ どうか、お力添えをお願いします。

  • アクセスのレポートにて明細行の色付け

    アクセスのVisualBasicで、明細行をある項目毎に色分けをいたいのですが、一応参考書にて If Me!テキスト1 > Me!テキスト2 Then Me.Section(acDetail).BackColor = RGB(200, 200, 200) Else Me.Section(acDetail).BackColor = RGB(255, 255, 255) End If    というようなことまではできたのですが、 同一レコード内ではなく、前レコードと対比して異値なら色付   という方法をご存知の方よろしくお願いします。

  • Accessのレポートで開くと「読み取り専用なので…」と出る。

    今まで通常通り表示できていたレポートを、詳細のところを白/グレーのストライプにしようと思い、以下のコードを追加しました。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) Count = Count + 1 If Count Mod 2 = 1 Then Me.Section(0).BackColor = 16777215 Else Me.Section(0).BackColor = 12632256 End If End Sub すると 実行時エラー'2135' このプロパティは読み取り専用であるため、設定できません。 と出てしまいました。 どこがダメなのでしょうか?

  • ACCESS 単票形式のレポート

    ACCESSで単票形式のレポートと言えば、1ページに1レコードだと思いますが、なぜか1ページに複数レポートがズラズラーッと出てきます。 オートレポートで作成しても同じです。 どうしたら、1ページに1レコードが印刷できますか? また、レポートの「詳細」セクションの「改ページ」を「カレントセクションの後」としたら、2ページ目以降にレポート名が印刷されないんですが、2ページ目以降もレポート名が印刷されるようにするにはどうしたらいいですか?

  • Access レポートの直線の長さについて

    os: windows7 バージョン:Access2013 レポートに配した直線のコントロールの長さを調整する方法をご教示お願いいたします。 いつも、参考にさせていただいております。 レポートに配した直線のコントロールにつきまして、「ある条件で太さが変わる」方法 をこの質問箱でご教示いただきました。誠に、ありがとうございました。 それは、レポートの詳細セクションに「カウント」というコントロールを作成して 可視=いいえで Option Compare Database Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If Me.カウント = 1 Then Me.直線149.BorderWidth = 1 Else Me.直線149.BorderWidth = 0 End If End Sub となっていて、とても見栄えの良い書面が出来ています。 この直線149の長さは現在16.5cmあるのですが、上記と同じ条件で、 カウント= 1 のとき直線149の長さは現状のままの16.5cmで そうでないとき、 直線149の長さを「14.8cm」で「右詰」としたいのです。 どのように記述すれば良いか色々探してみましたが見つかりませんでした。 どなた様かご教示くださるよう、何卒、よろしくお願いいたします。

  • access レポートで罫線を最後まで出力する方法

    accessのbvaの本を参照してレコードがない場合でも最後まで罫線を出力する方法を試しているのですが、インクリメントがうまくいっていないのかいつまでも改ページを続けてしまいます。 どなたか解決する方法を教えてください。 Option Compare Database Option Explicit '次の3つの変数はdeclarationセクションで宣言します '現在印刷中のレコード番号を表す変数 Private pintRecord As Integer 'レコードソースの全レコード数を表す変数 Private pintRecordMAX As Integer '1ページ当たりに印刷するレコード数の定数 Private Const cintRecperPage As Integer = 15 Private Sub グループヘッダー0_Format(Cancel As Integer, FormatCount As Integer) '現在印刷中のレコード番号を初期化します pintRecord = 0 'レコードソースの全レコード数を取得します pintRecordMAX = DCount("*", "T_出荷明細", "出荷No=reports![R_出荷証明書3 test]![出荷No]") '"*"にすることでクエリ内のレコード数をカウント。Null値フィールドを含むレコードも対象。 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) '各テキストボックスの可視/非可視のフラグ Dim blnVisible As Boolean '現在印刷中のレコード番号をインクリメントします pintRecord = pintRecord + 1 If (pintRecord Mod cintRecperPage) > 0 Then '1ページ内の途中のレコードを印刷している場合 '改ページしないようにします Me!bpage.Visible = False '印刷するレコードの位置によって、各テキストボックスの可視/非可視の 'フラグと、次レコードへ進めるかどうかの設定を行います If pintRecord < pintRecordMAX Then blnVisible = True Me.NextRecord = True ElseIf pintRecord = pintRecordMAX Then blnVisible = True Me.NextRecord = False Else blnVisible = False Me.NextRecord = False End If Else '1ページ内の最後のレコードになったとき If pintRecord <= pintRecordMAX Then 'まだ印刷するレコードが残っているときはその行を印刷後、改ページします blnVisible = True Me!bpage.Visible = True Else '印刷するレコードがもうないときはその内容は印刷しません blnVisible = False End If End If 'フィールドと連結したテキストボックスの可視/非可視を設定します Me![品番].Visible = blnVisible Me![品名].Visible = blnVisible 'Me![寸法使用].Visible= blnvisible Me![数量].Visible = blnVisible Me![備考].Visible = blnVisible End Sub

  • アクセスレポートのセクション繰り返しについて

     いつもお世話になっております。  アクセスレポートの「セクション繰り返し」についてお聞きいたします。  グループ化した項目名をグループヘッダー0セクションにテキストボックスを配置して、「セクション繰り返し」を「はい」にし、印刷した際はそのグループ化した項目名がグループ化した全ページに印刷なるようにしました。  また、当該レポートではグループ化を2つしており、最初のグループ化(グループヘッダー0)で連番をふっています。 この最初のグループ化に連番をふるモジュール等は次のとおりです。 1 詳細セクションに非連結の「通し番号_GP」を配置し、ここにグループ化ごとの連番が表示なるようにしています。 2 グループヘッダー0セクションのフォーマット時に下記のモジュールを配置しています。  Private Sub グループヘッダー0_Format(Cancel As Integer, FormatCount As Integer)  Me!通し番号_GP = 0  End Sub 3 詳細セクションのフォーマット時に下記のモジュールを配置しています。  Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)  If FormatCount = 1 Then  Me!通し番号_GP = Me!通し番号_GP + 1  End If  End Sub  ここで、グループヘッダー0の「セクション繰り返し」を「はい」にして印刷をすると、1ページ目は正しく連番になるのですが、2ページ目になると0から始まってしまい、連番でなくなってしまいます。  また、グループヘッダー0の「セクション繰り返し」を「いいえ」にして印刷をすると、今度は正しく次のページも連番となります。  別のグループ化のページになった際も、正しく1から始まり連番となります。  このように上手く連番がふることができず困っています。  希望する形としては、グループ化した名称がグループ化した全ページに印刷になること、さらにこのグループ化ごとの連番が次のページになっても正しく表示されることとなります。  上手く説明ができませんが、どうぞご教示くださいますようお願いいたします。