Access VBA質問箱 IV

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

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


386 / 500 ページ ←次へ | 前へ→

【5479】Re:ページ計のあるレポートの作成について
回答  小僧  - 05/6/22(水) 16:20 -

引用なし
パスワード
   ▼あおぎん さん:
こんにちは。

>レポート計をページヘッダーに配置していました。
>レポートヘッダーに配置しなおしましたが、レポートヘッダーだと
>いちばん最後のページに表示されますよね(あたりまえですが(汗))。
>これを1枚目の下のほう、ページ計の下に表示させるのはむずかしいでしょうか?

最初のページの上に表示されるのは「レポートヘッダー」
最後のページの下に表示されるのは「レポートフッター」

でなく、1ページ目のフッターに表示させたい、と言う事ですよね?

ページフッターに
テキストボックス:txt_合計
         コントロールソース =DSum("振込金額","テーブル名")
を配置して

Private Sub ページフッターセクション_Format(Cancel As Integer, FormatCount As Integer)
  If Me.Page = 1 Then
    Me.txt_合計.Visible = True
  Else
    Me.txt_合計.Visible = False
  End If
End Sub

>小僧さんのほうではそういうことはないですか??

すいません、当方の完全な検証ミスです。

一番上の「Private Sub XXX」の更に上に、

Private Cnt As Long

と宣言して

Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
  If Me.Page = 1 Or (Me.Page > 1 And Cnt >= 1) Then
    Me.txt_PageCount = Me.txt_PageCount + Me.txt_Count
  End If
  
  Cnt = Cnt + 1
End Sub

「Private Sub ページヘッダーセクション_Format」 の中で

  Cnt = 0

と初期化してみて下さい。
・ツリー全体表示

【5478】Re:ページ計のあるレポートの作成について
質問  あおぎん  - 05/6/22(水) 15:28 -

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

回答ありがとうございます。


>ヘッダーは「ページヘッダー」と「レポートヘッダー」の2種類ありますよね。

申し訳ありません。
レポート計をページヘッダーに配置していました。
レポートヘッダーに配置しなおしましたが、レポートヘッダーだと
いちばん最後のページに表示されますよね(あたりまえですが(汗))。
これを1枚目の下のほう、ページ計の下に表示させるのはむずかしいでしょうか?

何度も質問してすみません。


>本当にその場しのぎなので申し訳ないのですが、
>
>Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
>Dim Cnt As Long
>  Cnt = 0
>  If PrintCount = 1 Or (PrintCount > 1 And Cnt >= 1) Then
>    Me.txt_PageCount = Me.txt_PageCount + Me.txt_Count
>  End If
>  Cnt = Cnt + 1
>End Sub
>
>こんな感じでうまくいくと思われますがいかがでしょうか?

さっそくやってみて、プレビューさせてみたら、
きちんと計算されていたので喜んでいたのですが、
いったん閉じてまた開くと、
また前ページの最終行を足していました。
再度プレビューさせるときちんとなっていたり、
何度かプレビューさせてみるたび、
きちんとなっているページがまちまちで
表示に揺れ?があるようなのですが・・。

小僧さんのほうではそういうことはないですか??

お手数をおかけしますが、よろしくお願いします。
・ツリー全体表示

【5477】Re:テーブルの作成方法
回答  小僧  - 05/6/22(水) 15:03 -

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

ADOXを使う方法ですね。

>☆☆☆←の部分にYES/NO型を表記したいです。

  tb.Columns.Append "可否", adBoolean

のようにできます。
できたテーブルをデザインビューで見るとYes/No型になっていると思います。

ついでにチェックボックスにできれば、と思ったのですが…。

ヘルプ・MSのサイトを見てもなかなか見つかりませんね…。
・ツリー全体表示

【5475】Re:テーブルの作成方法
質問  takataka  - 05/6/22(水) 13:57 -

引用なし
パスワード
   早速のご返信有難うございます。
別の方法で下記の様に行ったのですが、値が転記されません。
因みにYES/NO型はどの様に記述したら宜しいでしょうか?

Public Sub table()
Dim cat As ADOX.catalog
Dim tb As ADOX.table
Set cat = New ADOX.catalog
cat.ActiveConnection = CurrentProject.Connection
Set tb = New ADOX.table
tb.Name = Forms!フォーム2!配布週
tb.columns.Append "備考", adVarWChar, 64
tb.columns.Append "配布週", adVarWChar, 255
tb.columns.Append "回収期限", adVarWChar, 255
☆☆☆←の部分にYES/NO型を表記したいです。
cat.Tables.Append tb
MsgBox ("終了です")
Set cat = Nothing
End Sub


▼小僧 さん:
>▼takataka さん:
>こんにちは。
>
>単なるテーブルのコピーでしたら
>「CopyObject」メソッドが使えそうですね。
>
>>>ヘルプより
>>>次の例では、CopyObject メソッドを使って、
>>>[社員] テーブルをカレント データベースにコピーし、新しい名前を付けます。
>>>
>>>DoCmd.CopyObject, "社員コピー", acTable, "社員"
・ツリー全体表示

【5474】Re:テーブルの作成方法
回答  小僧  - 05/6/22(水) 11:38 -

引用なし
パスワード
   ▼takataka さん:
こんにちは。

単なるテーブルのコピーでしたら
「CopyObject」メソッドが使えそうですね。

>>ヘルプより
>>次の例では、CopyObject メソッドを使って、
>>[社員] テーブルをカレント データベースにコピーし、新しい名前を付けます。
>>
>>DoCmd.CopyObject, "社員コピー", acTable, "社員"
・ツリー全体表示

【5473】Re:デザインビューに切替出来ない用にした...
回答  小僧  - 05/6/22(水) 11:36 -

引用なし
パスワード
   ▼Nao さん:
こんにちは。

配布用でしたら MDE ファイルに変換する。

管理者だけがデザインビューを可能にしたいのでしたら
該当のレポートを選択した状態で

[ツール] → [セキュリティ] → [ユーザ/グループの権限]で

[構造の読み取り] のチェックボックスがデザインビューの許可にあたる模様です。

ヘルプで「セキュリティ」をキーワードにするとアカウント関連の情報が
でてきますので参考にして下さい。
・ツリー全体表示

【5472】Re:ページ計のあるレポートの作成について
回答  小僧  - 05/6/22(水) 10:39 -

引用なし
パスワード
   ▼あおぎん さん:
おはようございます。

あおぎん さんの問題点、こちらでも再現致しました。
なんで最終レコードの値が読まれているのかは解決していませんが、
とりあえずの解決策です。
(本当にとりあえずなので、他に問題があるかもしれません。)

>2枚め以降は合計表示は不要なのですが、
>1枚目のみ表示させる方法はありますでしょうか?

ヘッダーは「ページヘッダー」と「レポートヘッダー」の2種類ありますよね。


>小計がうまく計算できていないようです。
本当にその場しのぎなので申し訳ないのですが、

Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
Dim Cnt As Long
  Cnt = 0
  If PrintCount = 1 Or (PrintCount > 1 And Cnt >= 1) Then
    Me.txt_PageCount = Me.txt_PageCount + Me.txt_Count
  End If
  Cnt = Cnt + 1
End Sub

こんな感じでうまくいくと思われますがいかがでしょうか?
・ツリー全体表示

【5471】Re:ページ計のあるレポートの作成について
質問  あおぎん  - 05/6/22(水) 9:33 -

引用なし
パスワード
   訂正・・・
 DSum関数を配置したのは、ページヘッダーでなくページフッターでした。


小計の表示ですが
前に書いたように

15件ずつ表示させるために
連番をふるtxtcountというテキストボックスを配置し、
改ページ(bpage)を配置して

 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
  '1 ページの表示レコード件数を 15 件にしています。
   If Me!txtcount Mod 15 = 0 Then
    Me!bpage.Visible = True
   Else
    Me!bpage.Visible = False
   End If

 End Sub
 
という記述をしていたのですが、

これを削除してみたところ
小計がきちんと表示されるようになりました。

15件ずつの表示は、レポートのページ設定等の調整によりできそうなので、問題はないといえばないのですが、ページ計と、表示データ数の指定の両方を求める方法はないでしょうか?

方法があれば知りたいなと思います。
よろしくお願いいたします。
・ツリー全体表示

【5470】テーブルの作成方法
質問  takataka  - 05/6/22(水) 9:02 -

引用なし
パスワード
   あるフォームにてテーブル名を指定し、テーブル作成したいです。
(テーブルバックアップ゚用の為に使用)
どなたかご返答宜しくお願いします。
・ツリー全体表示

【5469】デザインビューに切替出来ない用にしたい。
質問  Nao  - 05/6/22(水) 8:50 -

引用なし
パスワード
   閲覧者がレポートのデザインビューに切替出来ない用にして、
管理者のみが、変更出来るようにしたいのですが、
いい方法はありますか?
初心者ですいません。
・ツリー全体表示

【5468】Re:左に寄ります。
お礼  なおなお  - 05/6/22(水) 8:17 -

引用なし
パスワード
   ▼クロ様:

>私がもっと要領良くレス出来ればこんなに長くなることもなかったかもです。

いえ、とんでもございません。
私のわかりにくい説明に、最後までお付き合い頂き感謝しております。
本当にありがとうございました。
・ツリー全体表示

【5467】Re:EXCELのグループ化を解除できます...
お礼  bejikeni  - 05/6/21(火) 23:52 -

引用なし
パスワード
   TO 小僧 さん

毎回、的確なアドバイスありがとうございます。
本当に助かりました。ばっちりです。

返事が遅れてスイマセンでした。
・ツリー全体表示

【5466】Re:コンボボックスの表示について
回答  かみちゃん  - 05/6/21(火) 23:20 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>コンボボックスがA、Bと2つあるのですが、Aで選択内容により、Bに表示するデータを変えるにはどうしたらよいのでしょうか?

VBAではなく、コンボボックスの[値集合ソース]プロパティの設定です。
次のURLを参考にしてみてください。

2つのコンボボックスの内容をリンクさせる方法
http://www.tsware.jp/tips/tips_076.htm
・ツリー全体表示

【5465】Re:左に寄ります。
発言  クロ  - 05/6/21(火) 22:57 -

引用なし
パスワード
   お疲れさまでした。
私がもっと要領良くレス出来ればこんなに長くなることもなかったかもです。
明日は出かけるのでレス出来ないので解決出来てよかったです。
・ツリー全体表示

【5464】コンボボックスの表示について
質問    - 05/6/21(火) 21:29 -

引用なし
パスワード
   コンボボックスがA、Bと2つあるのですが、Aで選択内容により、Bに表示するデータを変えるにはどうしたらよいのでしょうか?
Aに表示するデータは固定です。
・ツリー全体表示

【5463】Re:ページ計のあるレポートの作成について
質問  あおぎん  - 05/6/21(火) 18:30 -

引用なし
パスワード
   ▼小僧 さん:
さっそくのお返事ありがとうございました。

少し言葉が足りなかったので・・。
レポート計を表示させたいのは、ページの下のほうなのです。

なので、教えていただいたことを参考に、ページヘッダーにDSum関数を配置してみましたら、表示させることができました。ありがとうございます。

さらにお伺いするのですが、2枚め以降は合計表示は不要なのですが、1枚目のみ表示させる方法はありますでしょうか?


小計の表示ですが、
表示されているレコードの振込金額を、1,2、3・・・としてレポートで表示させてみました。

2ページ目は16〜30の和で345となるはずが、360(+15)と表示され、
3ページ目は31〜45の和で570となるはずが、600(+30)と表示され、
4ページ目は46〜60の和で795となるはずが、840(+45)と表示されました。
どうやら、前のページの最終行の数値が加算されてしまうようです。


このレポートには、ほかに15件づつ表示させるための

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
   '1 ページの表示レコード件数を 15 件にしています。
   If Me!txtcount Mod 15 = 0 Then
    Me!bpage.Visible = True
   Else
    Me!bpage.Visible = False
   End If

End Sub

という記述をした以外には、プロシージャは記述していません。
また、金融機関の昇順にデータを並べていますが、グループ化等は行っていません。

何か原因が考えられますでしょうか。

よろしくお願いします。
・ツリー全体表示

【5462】Re:左に寄ります。
お礼  なおなお  - 05/6/21(火) 18:20 -

引用なし
パスワード
   ▼クロ様:

>コンボボックスで各値を社員名称に変えてみてください。
>量が多いなら一度閉じて更新クエリが何かでやってもいいと思います。

更新クエリを使い、社員CDを社員名称に変更したところ
選択フィルタで抽出した時の店舗数のカウントを取得することができました。

クロ様に感謝感激の気持ちでいっぱいです。
長い時間、お付き合いくださいまして本当にありがとうございました。
・ツリー全体表示

【5461】Re:チョット修正しました。
発言  クロ  - 05/6/21(火) 17:41 -

引用なし
パスワード
   レスが長くなったので左に寄りました。掲示板で確認してください。
・ツリー全体表示

【5460】Re:左に寄ります。
回答  クロ  - 05/6/21(火) 17:34 -

引用なし
パスワード
   >次に、フォームのSU1〜SU3のコンボボックスの連結列を「1」→「2」に変更した
>ところフォームのSU1〜SU3のコンボボックスに社員CDが表示されるようになりました。

この状態が実際のレコードの値だと思います。
コンボボックスで各値を社員名称に変えてみてください。
量が多いなら一度閉じて更新クエリが何かでやってもいいと思います。
・ツリー全体表示

【5459】Re:ページ計のあるレポートの作成について
発言  小僧  - 05/6/21(火) 17:13 -

引用なし
パスワード
   ▼あおぎん さん:
こんにちは。

>レポート計を1枚目に表示させる方法はいろいろ検索してもよくわからなくて、
>今までは、手で書いてました・・。

これについては DSum 関数が使えると思います。

レポートヘッダーにテキストボックスを配置し、コントロールソースに

=DSum("振込金額","テーブル名")

と記入すると合計金額が出力されると思います。


>小計がうまく計算できていないようです。

こちらについてですが、当方の環境ですとご提示のコードでページ毎の小計が
きちんと表示されていました。
どううまくいってないかが解らないので、振込金額を1レコード目から順に
「1」「2」「3」として、2ページ目の小計がいくつになるかを検証してみては
いかがでしょうか?
・ツリー全体表示

386 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1084738
(SS)C-BOARD v3.8 is Free