プロが教えるわが家の防犯対策術!

どなたか教えて下さい。
『やりたいこと』
あるテーブルのデータでレポートを作成しました。
3レコード印字したら、改ページせず、フッダーを表示したい。
(フッターには図形の□を表示)
或いは、
3レコード目の横にレコード内容以外のものを表示したい(図形)

『例』
みかん
りんご
バナナ
------------フッダー


カキ
ナシ
もも
------------フッダー


或いは、

みかん
りんご
バナナ    □
カキ
ナシ
もも     □     

いずれにしても、これが3レコード目よ!!と認識させる方法が
わかりません。
レポート内でおこなうのか、
テーブルやクエリー等で、1.2.3.1.2.3.とNoを振るのか。。
案も方法もサッパリです・・・。
どなたか、お知恵を貸してくださいませ!!!

A 回答 (4件)

1.レポートの「詳細」の一番右端に「マーカー」と言う名前のラベルを貼り、表題に「□」と入れます。



2.レポートのプロパティを見て、イベントの「開く時」を「イベントプローシジャ」にして、以下のコードを埋め込みます。
Private Sub Report_Open(Cancel As Integer)
  LineCount = 0
End Sub

3.コードページの
Option Compare Database
Option Explicit
の下に
Public LineCount As Integer
の1行を足して
Option Compare Database
Option Explicit
Public LineCount As Integer
にします。

4.レポートの「詳細」のプロパティを見て、イベントの「フォーマット時」を「イベントプローシジャ」にして、以下のコードを埋め込みます。
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
  LineCount = LineCount + 1
  マーカー.Visible = (LineCount Mod 3) = 0
End Sub

コードページが、全体で
Option Compare Database
Option Explicit

Public LineCount As Integer

Private Sub Report_Open(Cancel As Integer)
  LineCount = 0
End Sub

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
  LineCount = LineCount + 1
  マーカー.Visible = (LineCount Mod 3) = 0
End Sub
となっていればOKです。

これで
---------
みかん
りんご
バナナ    □
カキ
ナシ
もも     □
白挑
(改ページ)
黄桃
いちご     □
ぶどう
巨峰
マンゴー    □
---------
と言うレポートが出来ます。

2ページ目の「いちご」は2行目、「マンゴー」は5行目ですが、それぞれ9、12レコード目なので、マーカーが付きます。

フッターを使う場合はもう少し複雑で、ちょっと工夫が要ります。
    • good
    • 0
この回答へのお礼

ありがとうございました!
無事に出来ました!!

お礼日時:2008/04/10 13:53

3レコード目にイメージを表示させればいいのですね



詳細に非連結テキストボックスを置き
=1
集計実行を全体

詳細に表示させたいイメージを置きます

詳細フォーマット時イベントに

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)

If Me.テキスト12 Mod 3 = 0 Then
Me.イメージ11.Height = 300
Else
Me.イメージ11.Height = 0
End If
Me.詳細.Height = 200
End Sub

イメージの高さは適当に調整してくださいね
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2008/04/10 13:55

SELECT (DBCount("ID","Tab1","ID<=" & ID)+2)\3 AS GNumber, ID, fld_1


FROM tab1
ORDER BY ID;

ORDER BY 句がないと誤カウントするケースもあります。
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2008/04/10 13:55

テーブル_tab1:



ID_fld_1
1__A
2__B
3__C
4__D
5__E
6__F
7__G

レポート_クエリ1:

1
___1__A
___2__B
___3__C
2
___4__D
___5__E
___6__F
3
___7__G

このレポートの[並び替え/グループ化]は次のようです。

GNumber___昇順
ID________昇順

クエリ_クエリ1:

GNumber__ID__fld_1
______1___1__A
______1___2__B
______1___3__C
______2___4__D
______2___5__E
______2___6__F
______3___7__G

SELECT (DBCount("ID","Tab1","ID<=" & ID)+2)\3 AS GNumber, ID, fld_1
FROM tab1;

Access では標準モジュールで作成した関数をSQL文に組み込むことも可能。
そこで、DBCount() を使って3レコード毎にグループ番号を付与しています。
このようなグループ化をしておけばレポートの[並び替え/グループ化]機能が利用できます。

Public Function DBCount(ByVal strField As String, _
            ByVal strTable As String, _
            Optional ByVal strWhere As String = "", _
            Optional ByVal ReturnValue = 0) As Variant
On Error GoTo Err_DBCount
   Dim N
   Dim strQuerySQL As String
   Dim rst     As ADODB.Recordset

   Set rst = New ADODB.Recordset
   strQuerySQL = "SELECT COUNT(" & strField & ") FROM " & strTable
   If Len(strWhere) > 0 Then
     strQuerySQL = strQuerySQL & " WHERE " & strWhere
   End If
   With rst
     .Open strQuerySQL, _
        CurrentProject.Connection, _
        adOpenStatic, _
        adLockReadOnly
     If Not .BOF Then
       .MoveFirst
       N = .Fields(0)
     End If
   End With
Exit_DBCount:
On Error Resume Next
   rst.Close
   Set rst = Nothing
   DBCount = IIf(N <> 0, N, ReturnValue)
   Exit Function
Err_DBCount:
   MsgBox "SELECT 文の実行時にエラーが発生しました。(DBCount)" & Chr$(13) & Chr$(13) & _
      "・Err.Description=" & Err.Description & Chr$(13) & _
      "・SQL Text=" & strQuerySQL, _
      vbExclamation, " 関数エラーメッセージ"
   Resume Exit_DBCount
End Function
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2008/04/10 13:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す