- ベストアンサー
ACCESS日付変更時の改ページ方法
- ACCESSで日付が変わった場所で改ページする方法について教えてください。
- 日程表で、詳細に「日付」「場所」「時間」「内容」などのフィールドがあり、A5の用紙に印字しています。1枚の用紙に収まらない場合、2枚目に順次印字されています。2枚目に移る際に、日付が変わった時点で改ページしたいです。
- 色々調べてみましたが、Access2013のグループ化機能ではうまくできませんでした。どのようにしたら日付が変わった場所で改ページすることができるでしょうか?ご教示ください。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
レポートの「詳細」のどこか適当な位置に「テキストボックス」を挿入して下さい。 「テキストボックスの名前は「日付1」にして、レコードソースを「日付」にしておきます。そして、このテキストボックスの「可視」を「いいえ」にします。 次に、レポートの「詳細」の一番上に「改ページコントロール」を挿入して下さい。 「改ページコントロール」の名前は「改ページ1」にしておきます。 次に、レポートの「詳細」の「フォーマット時」のイベントプロシージャの部分に、次の1行を追加します。 改ページ1.Visible = Not IsNull([日付1]) 例えば Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) 改ページ1.Visible = Not IsNull([日付1]) If HI <> Me.行程_日付 Then Me.直線51.Visible = True HI = Me.行程_日付 Else (以下略) のように追加します。 こうすると「日付にデータが入力されているレコードが来た時だけ改ページする」ようになります。 追加した1行は テキストボックス「日付1」の内容がNullなら改ページコントロール「改ページ1」のVisibleプロパティをFalseにして改ページせず、テキストボックス「日付1」の内容に何か入っているなら改ページコントロール「改ページ1」のVisibleプロパティをTrueにして改ページする と言う働きをします。 質問者さんは「日程_日付の値を使って、線を出したり、線を出さなかったりする」と言う処理をしていますよね? 基本的には、それと同じで「日付の値を使って、改ページしたり、しなかったり」と言う処理が出来るのです。
その他の回答 (7)
- chayamati
- ベストアンサー率41% (260/624)
- chayamati
- ベストアンサー率41% (260/624)
- chayamati
- ベストアンサー率41% (260/624)
- chayamati
- ベストアンサー率41% (260/624)
>「日付」のすべてのフィールドに日を入力するということになりますか >それはちょっと、避けたいんですね?(わがままですみません) どのようなフィールドがあるか不明なので見当はずれかもしれませんが 日付テーブルを追加して図のようにリレーションでつなぎ、サブフォームのあるフォームは 1.日付テーブルを追加 2.元のテーブルの日付を日付IDと改名 3.日付テーブルの日付と元のテーブルの日付IDをリレーションで結ぶ。 4.サブフォームのあるフォームはフォームウィザードで作成します。 4-1.[作成]→[フォームウィザード] 4-2.→[日付テーブルより日付] 4-3.→[情報テーブルより情報] 4-4.→[次へ]→[次へ]→[表形式]→[次へ]→[完了] リレーションシップで日付が情報テーブルの日付IDにコピーされます
- chayamati
- ベストアンサー率41% (260/624)
- chayamati
- ベストアンサー率41% (260/624)
>試行錯誤しているのですが Accessは、例えば演算項目に一つでも空白があれば他のレコードも演算不能になります。 テーブルの規定値プロパティーを0またはdate()にして、エラーの原因を事前に回避します。。 >場所が変わっても日付が変わらないと入力していません。 このままではだめです。 自分がやっている方法ですが フォーム上に基準日のテキストボックス「規定値をdate()」として 日付フィールドのクリックイベントで規定値にするようにしています。 Private Sub 日付_Click() 日付 = 基準日 End Sub
補足
chayamati様 ご回答ありがとうございます。演算項目の空白はダメなんですね? ・「日付」の規定値の示されたことは、すみません知識不足でどのような ことになるのか解りません。(すみません)
- chayamati
- ベストアンサー率41% (260/624)
>この2枚目に移る時、「日付」が変わった時点で改ページをしたいのです。 >「日付」は日が変わった時だけ入力しています。 日が変わらなけれが日付フィールドは空白ですか?これでは日付をグループ化できませんね グループ化できれば、プロパティーで改ぺージ設定できますよ。
お礼
chayamati様 ご回答ありがとうございます。 >日が変わらなけれが日付フィールドは空白ですか? そうです。すべての日付フィールドに何回も同じ値を入力するのは効率的ではないので、場所が変わっても日付が変わらないと入力していません。 何か、いい方法はないものかと、試行錯誤しているのですが、解決できる知識が無いため、行き詰っています。
お礼
chayamati様 ご回答ありがとうございます。 ご教示いただいた方法で、まだ試していませんが、想像するに、「日付」のすべてのフィールドに日を入力するということになりますか? それはちょっと、避けたいんですね?(わがままですみません) よろしくお願いします。