Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


209 / 2272 ツリー ←次へ | 前へ→

【12538】7行レポート作成について(初心者です) asahi 14/5/14(水) 14:18 質問[未読]
【12539】Re:7行レポート作成について(初心者です) hatena 14/5/14(水) 18:28 回答[未読]
【12541】Re:7行レポート作成について(初心者です) asahi 14/5/16(金) 11:19 質問[未読]
【12543】Re:7行レポート作成について(初心者です) hatena 14/5/17(土) 13:09 回答[未読]
【12544】Re:7行レポート作成について(初心者です) asahi 14/5/19(月) 15:49 質問[未読]
【12545】Re:7行レポート作成について(初心者です) asahi 14/5/19(月) 16:58 質問[未読]
【12546】Re:7行レポート作成について(初心者です) hatena 14/5/19(月) 17:46 回答[未読]
【12547】Re:7行レポート作成について(初心者です) asahi 14/5/21(水) 13:18 質問[未読]
【12548】Re:7行レポート作成について(初心者です) hatena 14/5/21(水) 14:09 回答[未読]
【12549】Re:7行レポート作成について(初心者です) asahi 14/5/21(水) 14:29 お礼[未読]

【12538】7行レポート作成について(初心者です)
質問  asahi  - 14/5/14(水) 14:18 -

引用なし
パスワード
   ACCESS初心者です。手探りで伝票作成用レポートを作成しています。

レポートはA4に3連タイプの形式があるものに印刷するよう作成し、
売上伝票7行・売上伝票7行2・売上伝票7行3 と3つレポートを作り、
売上伝票7行へサブレポートとして売上伝票7行2と3をはめ込んでいます。

下記のように7行以内なら7行と認識させ7行以上あれば8行目からは次の
ページへ印刷されるようにするようにしたいのですが、
「Dcountの抽出条件でデータ型が一致しません」となります。

DCountの条件の  "売上ID='" & Me!売上ID & "'" の意味をわかりやすく教えていただけると助かります。

Option Explicit
Option Compare Database
Dim AAA As Integer
Dim BBB As Integer


Private Sub グループヘッダー0_Format(Cancel As Integer, FormatCount As Integer)
AAA = 0
BBB = DCount("売上ID", "売上明細", "売上ID='" & Me!売上ID & "'")


End Sub

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
AAA = AAA + 1
Me!テキスト50 = AAA

If AAA Mod 7 = 0 Then

  If AAA < BBB Then
      Me!改ページ48.Visible = True
    
ElseIf AAA = BBB Then
      Me!テキスト50.Visible = True
      Me!商品ID.Visible = True
      Me!数量.Visible = True
      Me!単位.Visible = True
      Me!単価.Visible = True
      Me!金額.Visible = True
    
     Else
      Me!テキスト50.Visible = False
      Me!商品ID.Visible = False
      Me!数量.Visible = False
      Me!単位.Visible = False
      Me!単価.Visible = False
      Me!金額.Visible = False
End If

  
  Me!改ページ48.Visible = False
    
  If AAA < BBB Then
      Me.NextRecord = True
      Me!テキスト50.Visible = True
      Me!商品ID.Visible = True
      Me!数量.Visible = True
      Me!単位.Visible = True
      Me!単価.Visible = True
      Me!金額.Visible = True
     
ElseIf AAA = BBB Then
      Me.NextRecord = False
      Me!テキスト50.Visible = True
      Me!商品ID.Visible = True
      Me!数量.Visible = True
      Me!単位.Visible = True
      Me!単価.Visible = True
      Me!金額.Visible = True
    
     Else
      Me.NextRecord = False
      Me!テキスト50.Visible = False
      Me!商品ID.Visible = False
      Me!数量.Visible = False
      Me!単位.Visible = False
      Me!単価.Visible = False
      Me!金額.Visible = False
    
   End If
     
End Sub

長くなりましたがアドバイスのほうよろしくお願いいたします。

【12539】Re:7行レポート作成について(初心者です...
回答  hatena  - 14/5/14(水) 18:28 -

引用なし
パスワード
   >下記のように7行以内なら7行と認識させ7行以上あれば8行目からは次の
>ページへ印刷されるようにするようにしたいのですが、
>「Dcountの抽出条件でデータ型が一致しません」となります。
>
>DCountの条件の  "売上ID='" & Me!売上ID & "'" の意味をわかりやすく教えていただけると助かります。

売上ID のデータ型が数値型なら、抽出条件式を

"売上ID=" & Me!売上ID

としてください。

ただ、サブレポートにするなら、
サブレポートの方には罫線を表示させずに、メインレポートの方に
7行分の罫線を配置するようにしたほうが、楽だと思います。

あるいは、下記で紹介している方法だとレポート一つで希望のレイアウトが実現できます。

明細を持つ伝票とその複写を同じページに2分割して表示する - hatena chips
hatenachips.blog34.fc2.com/blog-entry-233.html

【12541】Re:7行レポート作成について(初心者です...
質問  asahi  - 14/5/16(金) 11:19 -

引用なし
パスワード
   ▼hatena さん:

>"売上ID=" & Me!売上ID
としたのですが、指定した式には値がありません。となります。
データ型は、オートナンバー型の長整数型です。

>あるいは、下記で紹介している方法だとレポート一つで希望のレイアウトが実現できます。
>
>明細を持つ伝票とその複写を同じページに2分割して表示する - hatena chips
>hatenachips.blog34.fc2.com/blog-entry-233.html

↑の方見させてただきました。
とても丁寧でわかりやすい説明で、こちらの方法を試していきたいと思います!
また、アドバイスお願いします。

ただ、Dcountの条件も何がおかしいか気になるので教えていただけたらうれしいです。
よろしくお願いします。

【12543】Re:7行レポート作成について(初心者です...
回答  hatena  - 14/5/17(土) 13:09 -

引用なし
パスワード
   最初の質問より
> 下記のように7行以内なら7行と認識させ7行以上あれば8行目からは次の
> ページへ印刷されるようにするようにしたいのですが、

この部分を見落としてましたが、複数ページになるなら、サプレポート方式はあきらめましょう。
サブレポートでは改ページできないので、対応できるのは1ページの場合(7レコードまで)だけです。

ソースのデータにページ情報を持たせれば、メインレポートをページでグループ化して、それとリンクするサプレポートを配置するという方法も可能ですが、逆に複雑になりそうです。

それよりは前回紹介した方法が一つのレポートで済みますので楽のように思います。
前回の方法は2分割ですが、理屈が理解できれば、3分割にすることも可能ですし、複数ページでも対応してます。


> >"売上ID=" & Me!売上ID
> としたのですが、指定した式には値がありません。となります。
> データ型は、オートナンバー型の長整数型です。

売上ID と連結したテキストボックスがレポート上にありますか。

【12544】Re:7行レポート作成について(初心者です...
質問  asahi  - 14/5/19(月) 15:49 -

引用なし
パスワード
    >売上ID と連結したテキストボックスがレポート上にありますか。

すみません。勉強不足で売上IDと連結したテキストボックスというのがよくわかりません。
ただ、VBAのほうをSelect Caseに変えてみるとエラー出ずに動きました!が、8行入力すると7行目以降が印字されません。サブレポートがあるためなんですね。

明細を持つ伝票とその複写を同じページに2分割して表示する。
を見せていただいて、少しずつ進めているのですが、
『明細テーブルの主キーフィールドでグループ化して・・・』
のところで詰まっています。

レポートは『伝票作成クエリ』を作って伝票を印刷するようにしています。

内容は 
テーブル/クエリ・フィールド名
売上テーブル・得意先ID    
売上テーブル・運搬者ID        
売上テーブル・売上日付    
売上テーブル・備考    
売上テーブル・支払ID    
売上テーブル・社員ID    
売上明細クエリ・商品ID    
売上明細クエリ・数量    
売上明細クエリ・単位    
売上明細クエリ・単価    
売上明細クエリ・重量    
売上テーブル・売上ID
運搬者テーブル・車番
売上明細クエリ・売上明細ID

となっています。
ヘッダー項目のキーフィールドでのグループ化は、
売上IDと売上明細IDで大丈夫でしょうか??

明細テーブル主キーフィールドの売上明細IDは、ヘッダー項目のほうで
グループ化しているので売上IDと売上明細IDが出てきてしまいます。

すみませんがアドバイスお願いします。



【12545】Re:7行レポート作成について(初心者です...
質問  asahi  - 14/5/19(月) 16:58 -

引用なし
パスワード
   サンプルファイルを見させていただきましたら、グループ化3行目に売上明細ID
をつくる方法があるのがわかりました。
ありがとうございます。

ただ、7行以降改ページにしたいのですが、
『フィールドがない場合も用紙の最後まで罫線を出力する』
で記載の通り記述すると、1行づつの明細になり8行明細があると8枚印刷されてしまいます。

Option Compare Database
Option Explicit
Dim RowCnt As Long

Private Sub ページヘッダーセクション_Format(Cancel As Integer, FormatCount As Integer)

 Me.MoveLayout = False
 RowCnt = 0
 
End Sub

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

RowCnt = RowCnt + 1

  If RowCnt >= 7 Then '1ページ当たり7件
  

    Me.詳細.ForceNewPage = 2 'カレントセクションの後で改ページ

  Else

    Me.詳細.ForceNewPage = 0 'カレントセクションの前で改ページ

  End If

End Sub

たびたびすみませんがよろしくお願いします。

【12546】Re:7行レポート作成について(初心者です...
回答  hatena  - 14/5/19(月) 17:46 -

引用なし
パスワード
   とりあえず、ご使用のAccessのバージョンをお知らせください。
バージョンによって設定が異なる場合がありますので。

>すみません。勉強不足で売上IDと連結したテキストボックスというのがよくわかりません。

コントロールソースが、売上ID となっているテキストボックスがレポート上にありますか、という意味です。
これが、ないとVBA上から 売上ID を参照できません。

> ただ、7行以降改ページにしたいのですが、
> 『フィールドがない場合も用紙の最後まで罫線を出力する』
> で記載の通り記述すると、1行づつの明細になり8行明細があると8枚印刷されてしまいます。

グループ化の設定、または、セクションの改ページの設定がおかしいのだと思います。

売上テーブル の主キーでグループ化してますか。それが一番上になってますか。
このグループヘッダーの高さをヘッダー部の高さにします。

その下に、売上明細テーブルの主キー(売上明細ID かな?)でグループ化して、グループヘッダーを表示させます。
この高さに1行分の高さにします。

各セクションの「改ページ」はとりあえず「しない」に設定してください。

【12547】Re:7行レポート作成について(初心者です...
質問  asahi  - 14/5/21(水) 13:18 -

引用なし
パスワード
   返信ありがとうございます。

AccessのバージョンはAccess2000です。

レポートは
ページヘッター
売上IDヘッダー
売上明細IDヘッター
詳細
売上IDフッター
ページフッター
となっています。

売上テーブルの主キーは売上IDで
売上明細テーブルの主キーは売上明細IDとなっています。

改ページ、売上IDフッターがカレントセクションの後になっていましたので
いいえに設定しました。

よろしくお願いします。

【12548】Re:7行レポート作成について(初心者です...
回答  hatena  - 14/5/21(水) 14:09 -

引用なし
パスワード
   >レポートは
>ページヘッター
>売上IDヘッダー
>売上明細IDヘッター
>詳細
>売上IDフッター
>ページフッター
>となっています。
>
>売上テーブルの主キーは売上IDで
>売上明細テーブルの主キーは売上明細IDとなっています。
>
>改ページ、売上IDフッターがカレントセクションの後になっていましたので
>いいえに設定しました。

文章だけでは、状況の把握は難しいですね。
実物をみないと、どこで間違っている指摘するのは難しそうです。
もし、よければ私の主催する掲示板が有りますが、
そちらならファイルをアップロードできますので、そちらで再質問してもらえますか。

「hatena の Microsoft Access 掲示板」をキーワードに検索すると見つかります。

【12549】Re:7行レポート作成について(初心者です...
お礼  asahi  - 14/5/21(水) 14:29 -

引用なし
パスワード
   わかりました。

検索してみます!
お手数をお掛けしますが、よろしくお願いします。

209 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078190
(SS)C-BOARD v3.8 is Free