1.「レコードをすべて差し込む方法」で最後のレコード(新規レコード)だけを対象にする
2.作業テーブルを用意し「レコードをすべて差し込む方法」で、常に1レコードだけを対象にする
3.Word文章(テンプレートファイルのコピー)のテキストを直接置き換える
ゼロからWordの差し込み印刷を設定する方法も検索すれば見つかりそうですが必要ないですよね? (2)は少し特殊ですが、それぞれ簡単な単語で検索して見つかったページをつまみ食いした程度で出来そうな内容です。それぞれメリット・デメリットはあります。どのような問題があり、どういった手法を望んでいるんですか?
もしかして、月にいくらを便宜上、1日or月末で登録するという事でしょうか?それとも、1日に登録するか、月末に登録するかという事でしょうか? ググっただけですが、会計基準や会社のルールに従い、月にいくら、請求日、入金日を登録する感じになるのかも。
一般的には1日にすると思います。 日付/時刻型に年月だけ入力すると自動で1日になりますので。 末日が必要な時は、 DateAdd("m",1,[日付])-1 とか DateSerial(Year([日付]),Month([日付]),0) という式で求められます。
あるいは、日付/時刻型でなく、年、月の数値型の2フィールドにしたり、数値型の1フィールドで202101というように6桁にする方法もあります。
もう少し具体的に現状を説明すると誰か回答するかも?テーブル構造、SQL、VBAコードなど。
ずれについては、グループヘッダーを使っていてそれが拡張した次ページに印刷されない分上にずれてる(ように見える)と予想 これならグループヘッダーのセクション繰り返しプロパティを「はい」にすると対応できます
「背景がグレー」に関しては、詳細セクションの『代替の背景色』プロパティを「色なし」に設定してみてください。
「表示位置」に関しては現状のレイアウトとか設定が分からないと原因の特定は難しいです。 デザインビューとプレビューの画像をアップしてもらえたら何かわかるかもしれません。
ありがとうございます。 印刷プレビューで2ページ目も表示されるようになりましたが、2ページ目は背景がグレーになり、表示位置も上にずれています。原因がわかりません。よろしくお願いします。
ありがとうございます!やりたいことが完璧にできました!
皆様 ご回答いただきありがとうございます。 りんご様からご紹介いただきましたHatenaさんの方法で対応いたしました。 大変助かりましたありがとうございました。
詳細セクションとテキストボックスの「印刷時拡張」プロパティを「はい」に設定してください。
フォームのレコードソースがテーブルならば、
Dim rs As DAO.Recordset Set rs = Me.RecordsetClone rs.AddNew With Me.Recordset Dim i As Long For i = 1 To rs.Fields.Count - 1 rs.Fields(i) = .Fields(i) Next End With rs.Update DoCmd.GoToRecord , , acLast
先頭フィールドがオートナンバー型のフィールドという前提です。
hiroton様
ありがとうございました。助かりました
回答ありがとうございます。勉強になります。 テーブルのレコード自体をまるまるコピーして、新規レコードに貼り付ける方法はないでしょうか?
フォーム上に連結コントロールとして配置していないフィールドはコピーされません。 フォーム上に連結テキストボックスとして配置しておく必要があります。 表示させたくないなら、サイズを小さめにして、他のコントロールの背面に隠しておくといいでしょう。 「タブストップ」を「いいえ」にしておけば、タブキーで移動してもフォーカスしないのでユーザーは見ることができません。
ComboBox.NotInList イベント (Access)
リスト外入力時イベントで制御できます
Private Sub コンボ_NotInList(NewData As String, Response As Integer) Me.コンボ.Undo End Sub
自動では、できませんでしたが、何とか完成しました。 ありがとうございました。
いつも、回答ありがとうございます。 今年もよろしくお願いします。
りんご様 回答ありがとうございます。 そうですよね。Excelでやるべきですよね。 そう、提案したんですけど、ACCESSの要望が強くて困っています。
Excelでやるのはどうですか? AccessもSQLも、横並びを使わない、ときに利用するものだと思います。
「3まとめ」には同じ果物で農家がことなるレコードがあります。 例:もも 野田農園 百田農園があり、野田農園に数量40をセットしたいです。
農家テーブルは、
果物名 農家名 もも 野田農園 もも 百田農園
ということですか。 果物テーブルには農家名はないのに、その数量を野田農園にのみセットするという判断基準は何でしょうか。
集計クエリを作ったら、テーブル作成クエリに変更・実行。作成されたテーブルと更新したいテーブルで内部結合を組んで更新クエリを作成。取り敢えず思い浮かんだだけなので、動作確認が不十分です。 余談ですが、僕だったら、明細テーブル:{農家,果物名,品種},数量とするかなぁ。 ググっていたら、Hatenaさんのブログがヒットしました。流石ですね。 HatenaChips:更新クエリで定義域集計関数を使わずに集計する コマンドボタンに設定。明細レコードの先頭レコードに移動、更新クエリの実行、次のレコードに移動、更新クエリ実行、・・・みたいな使い方になるのかしら。 追伸 謹んで新春のお喜び申し上げます。今年もどうぞよろしくお願いします。
お世話になります。 ご回答いただきありがとうございます。 >画像を見ると、「3まとめ」テーブルは「1果物合計」クエリと同じもののようですが、なぜ取得できるものをテーブルにする必要があるのでしょうか。 その理由を聞かせてほしいです。 「3まとめ」には同じ果物で農家がことなるレコードがあります。 例:もも 野田農園 百田農園があり、野田農園に数量40をセットしたいです。
お教えいただいた方法ですと、農家名の指定ができないのでうまくいきませんでした。 もし他に方法がございましたらよろしくお願いいたします。 どうもありがとうございました。
画像を見ると、「3まとめ」テーブルは「1果物合計」クエリと同じもののようですが、なぜ取得できるものをテーブルにする必要があるのでしょうか。 その理由を聞かせてほしいです。
とりあえず、上記の疑問点はおいておいて、回答すると、 集計クエリを含むクエリは更新不可のクエリになります。それを更新クエリにすれば当然そのようなエラーになります。
集計クエリは使わずに、「3まとめ」テーブルから更新クエリを作成して、DSum関数で合計を取得して更新すれば可能ではあります。
更新クエリの設定
お世話になります。 hatena様ご回答いただきありがとうございます。 こちらの方法で対応できました。 ユーザもカレントレコードが確認しやすいとよろこんでおりました。 ありがとうございます。 いつも助けていただきありがとうございます。 また質問させていただくことがあるかと思いますがその際はどうぞよろしくお願い いたします。
ご希望のことは、下記のようなことでしょうか。
カレント行の背景色の変更 その3 - hatena chips
[ファイル]-[オプション]-[現在のデータベース]で、[ドキュメント ウィンドウ オプション]が、 「ウィンドウを重ねて表示する」になっていたら「タブ付きドキュメント」にすれば、すべてのウィンドウがアプリケーションウィンドウいっぱいに広がります。
ご教示ありがとうございました!
それぞれのテーブルの取引先ごとの集計でたし引きすればいいのかな?
その通りですよ。ただ、データベースでやるならデータベースの作法があるだけです。質問のタイトルは「特殊な売上管理をするときの構成について」ですが、内容を聞く限りデータベース的には至ってシンプルな内容です
ただし、「月ごと」の集計が必要なんですよね?となると、「日報の記録はどの月に属する配送なのか?」という問題が発生します。「日報の日付を基準」でいいのか、「取引先の受注データを基準」にする必要があるのか、2つのテーブルの間で間違いのないルール付けが必要です
現在は2つのテーブルは紐付いていません
集計してexcelにコピペしてexcelで計算しています
現実的に計算できているのだから目に見える設定が無いだけで何かしら(仕事上のルールであるとか、取引先との契約内容であるとか)で紐づいているんですよ。 「関係性をうまく説明できること」 「データベース(ACCESS)でその関係性を設定できること」 理論と実装ですね。順を追って考えていきましょう
データベースとはなにか?という話なら、難しいモノかもしれませんね
結構テンプレネタだと思うんだけど有名どころのサイトでも解説ないよね 連結されたコンボ ボックスに値を追加する
コンボボックスのリスト外入力処理(システムコマコさん) コンボボックスから値集合ソース編集画面を表示する方法(T'sWareさん)
ご回答ありがとうございます。
>これはどうやって? 元になるテーブルをインポートしたあと、そのテーブルを選択しつつ作成リボンのフォームボタンを押し、 その後フォームレイアウトのデザイン、のリボンでボタン作成し、 コマンドボタンウィザードで新しいレコードの追加を割り当てたらできました。
この場合、ボタンを一回押すとレコード追加はできるのですが、 ボタンを一回押すだけでレコード追加だけでなくSub hoge~End Subも一気に実行されるようにしたいです。 (機能追加したい) どこにSub hoge~End Subを記述すればよろしいでしょうか? →(自己解決したのでメモ代わりに) レコード追加で作ったボタンにSub hoge~End Subだけでなく、レコード追加のコードも入れたらできました。
また質問させていただくこともあるかもしれませんが、よろしくお願いいたします。
現在は2つのテーブルは紐付いていません 集計してexcelにコピペしてexcelで計算しています たんに、テーブルにデータをいれているだけでほぼexcelのシートに保存しているのとかわらない状態です 取引先ごとの利潤が分かればいいので それぞれのテーブルの取引先ごとの集計でたし引きすればいいのかな?とか思ってましたがそんな単純なものでもないみたいてすね
取引先だけでは一意に特定できないですよね。 取引先と日付で特定できるのですか。
それで配達員ごとの配送件数と枚数を把握して歩合給を計算します
現在はどのような手順で2つのテーブルを紐づけて、計算しているのでしょうか。
まずは、2つのテーブルのデータ例を提示して具体的に、そこからどのように計算しているか、 説明してもらえませんか。
売上テーブル 配送テーブルに 共通しているフィールドは”取引先”があります (売上テーブルではどこに請求するか把握するため、配送テーブルでは給与明細にどのどこからの配送をどれだけ配送したかを把握するためです) これと日付でリレーションすると、11月のA社の売上はいくら、そのうち従業員への歩合はいくら、と計算できるでしょうか?
帳票フォームにすればいいでしょう。 同じ値が連続する場合が多いフィールドはVBAで規定値プロパティを設定すればいいでしょう。
同じ値のデータを連続して入力したいなら、連続入力のVBAをショートカットキーなどに割り当てるなど工夫します。
テーブル構成や詳細な仕様が不明なので、とりあえずのアドバイスはこんなところです。
売上テーブルと配送テーブルを紐づけするフィールドはありますか。
あるなら、クエリでそのフィールド同士で結合すればいいだけです。
ないなら、各テーブルにどのようなフィールドがあって、現状はどのように対応させているかの説明してください。
に近いようなものはできています。上記のようなものは紙の伝票をベースにしたものだと思うのですが 複数の日付が連続して存在するデータの入力には適していないような気がします 今日のデータを入力しているときでも、その上には昨日のデータが表示されているようなレイアウトのほうが適している気がするのですが、どのようにしたらよいかまではわからなくて質問しました
データベースがやりたいのであれば、とりあえず、Excelに新しいシートを作り、日付、取引先、商品名を手入力して下さい。この時、組み合わせが同じものは1つだけとします。 画像のシートにデータを登録する際は、まず、新しいシートに画面を切り替えます。登録したい日付・取引先・商品名の組み合わせがあるか探して下さい。なければ登録した後、画像のシートに戻ります。日付・取引先・商品名、その他のフィールドを手入力したら、新しいシートに切り替えて次の組み合わせを探します。以後、繰り返します。 ちらつく、視覚的にわかりにくい、Excelインポートのほうが早い、これらを土台にデータベースは成り立ちません。今までのExcelの何倍も手間暇かけたら、やっとデータベースが始まると思います。
Accessではどこまで出来ていて、どこからが分からないのでしょうか。 それとも、Accessの方はまったく手を付けていない状態ですか。
とりあえずは、Accessで構築するなら下記のような手順になります。
どこまで出来ていますか。
オブジェクト指向の流行はピークを過ぎたんじゃないでしょうか?得意分野と伸び代の目処がついたという意味で。少なくとも、データベースの設計にはイマイチみたいですよ。
Accessのテーブルやクエリのデータを貼り付ける場合は下記で、Markdown書式のテーブルに変換して貼り付けてください。
Markdown Tables generator
1.「レコードをすべて差し込む方法」で最後のレコード(新規レコード)だけを対象にする
2.作業テーブルを用意し「レコードをすべて差し込む方法」で、常に1レコードだけを対象にする
3.Word文章(テンプレートファイルのコピー)のテキストを直接置き換える
ゼロからWordの差し込み印刷を設定する方法も検索すれば見つかりそうですが必要ないですよね?
(2)は少し特殊ですが、それぞれ簡単な単語で検索して見つかったページをつまみ食いした程度で出来そうな内容です。それぞれメリット・デメリットはあります。どのような問題があり、どういった手法を望んでいるんですか?
もしかして、月にいくらを便宜上、1日or月末で登録するという事でしょうか?それとも、1日に登録するか、月末に登録するかという事でしょうか?
ググっただけですが、会計基準や会社のルールに従い、月にいくら、請求日、入金日を登録する感じになるのかも。
一般的には1日にすると思います。
日付/時刻型に年月だけ入力すると自動で1日になりますので。
末日が必要な時は、
DateAdd("m",1,[日付])-1
とか
DateSerial(Year([日付]),Month([日付]),0)
という式で求められます。
あるいは、日付/時刻型でなく、年、月の数値型の2フィールドにしたり、数値型の1フィールドで202101というように6桁にする方法もあります。
もう少し具体的に現状を説明すると誰か回答するかも?テーブル構造、SQL、VBAコードなど。
ずれについては、グループヘッダーを使っていてそれが拡張した次ページに印刷されない分上にずれてる(ように見える)と予想
これならグループヘッダーのセクション繰り返しプロパティを「はい」にすると対応できます
「背景がグレー」に関しては、詳細セクションの『代替の背景色』プロパティを「色なし」に設定してみてください。
「表示位置」に関しては現状のレイアウトとか設定が分からないと原因の特定は難しいです。
デザインビューとプレビューの画像をアップしてもらえたら何かわかるかもしれません。
ありがとうございます。
印刷プレビューで2ページ目も表示されるようになりましたが、2ページ目は背景がグレーになり、表示位置も上にずれています。原因がわかりません。よろしくお願いします。
ありがとうございます!やりたいことが完璧にできました!
皆様
ご回答いただきありがとうございます。
りんご様からご紹介いただきましたHatenaさんの方法で対応いたしました。
大変助かりましたありがとうございました。
詳細セクションとテキストボックスの「印刷時拡張」プロパティを「はい」に設定してください。
フォームのレコードソースがテーブルならば、
先頭フィールドがオートナンバー型のフィールドという前提です。
hiroton様
ありがとうございました。助かりました
回答ありがとうございます。勉強になります。
テーブルのレコード自体をまるまるコピーして、新規レコードに貼り付ける方法はないでしょうか?
フォーム上に連結コントロールとして配置していないフィールドはコピーされません。
フォーム上に連結テキストボックスとして配置しておく必要があります。
表示させたくないなら、サイズを小さめにして、他のコントロールの背面に隠しておくといいでしょう。
「タブストップ」を「いいえ」にしておけば、タブキーで移動してもフォーカスしないのでユーザーは見ることができません。
ComboBox.NotInList イベント (Access)
リスト外入力時イベントで制御できます
自動では、できませんでしたが、何とか完成しました。
ありがとうございました。
いつも、回答ありがとうございます。
今年もよろしくお願いします。
りんご様
回答ありがとうございます。
そうですよね。Excelでやるべきですよね。
そう、提案したんですけど、ACCESSの要望が強くて困っています。
Excelでやるのはどうですか?
AccessもSQLも、横並びを使わない、ときに利用するものだと思います。
農家テーブルは、
果物名 農家名
もも 野田農園
もも 百田農園
ということですか。
果物テーブルには農家名はないのに、その数量を野田農園にのみセットするという判断基準は何でしょうか。
集計クエリを作ったら、テーブル作成クエリに変更・実行。作成されたテーブルと更新したいテーブルで内部結合を組んで更新クエリを作成。取り敢えず思い浮かんだだけなので、動作確認が不十分です。
余談ですが、僕だったら、明細テーブル:{農家,果物名,品種},数量とするかなぁ。
ググっていたら、Hatenaさんのブログがヒットしました。流石ですね。
HatenaChips:更新クエリで定義域集計関数を使わずに集計する
コマンドボタンに設定。明細レコードの先頭レコードに移動、更新クエリの実行、次のレコードに移動、更新クエリ実行、・・・みたいな使い方になるのかしら。
追伸
謹んで新春のお喜び申し上げます。今年もどうぞよろしくお願いします。
お世話になります。
ご回答いただきありがとうございます。
>画像を見ると、「3まとめ」テーブルは「1果物合計」クエリと同じもののようですが、なぜ取得できるものをテーブルにする必要があるのでしょうか。
その理由を聞かせてほしいです。
「3まとめ」には同じ果物で農家がことなるレコードがあります。
例:もも 野田農園 百田農園があり、野田農園に数量40をセットしたいです。
お教えいただいた方法ですと、農家名の指定ができないのでうまくいきませんでした。
もし他に方法がございましたらよろしくお願いいたします。
どうもありがとうございました。
画像を見ると、「3まとめ」テーブルは「1果物合計」クエリと同じもののようですが、なぜ取得できるものをテーブルにする必要があるのでしょうか。
その理由を聞かせてほしいです。
とりあえず、上記の疑問点はおいておいて、回答すると、
集計クエリを含むクエリは更新不可のクエリになります。それを更新クエリにすれば当然そのようなエラーになります。
集計クエリは使わずに、「3まとめ」テーブルから更新クエリを作成して、DSum関数で合計を取得して更新すれば可能ではあります。
更新クエリの設定
お世話になります。
hatena様ご回答いただきありがとうございます。
こちらの方法で対応できました。
ユーザもカレントレコードが確認しやすいとよろこんでおりました。
ありがとうございます。
いつも助けていただきありがとうございます。
また質問させていただくことがあるかと思いますがその際はどうぞよろしくお願い
いたします。
ご希望のことは、下記のようなことでしょうか。
カレント行の背景色の変更 その3 - hatena chips
[ファイル]-[オプション]-[現在のデータベース]で、[ドキュメント ウィンドウ オプション]が、

「ウィンドウを重ねて表示する」になっていたら「タブ付きドキュメント」にすれば、すべてのウィンドウがアプリケーションウィンドウいっぱいに広がります。
ご教示ありがとうございました!
その通りですよ。ただ、データベースでやるならデータベースの作法があるだけです。質問のタイトルは「特殊な売上管理をするときの構成について」ですが、内容を聞く限りデータベース的には至ってシンプルな内容です
ただし、「月ごと」の集計が必要なんですよね?となると、「日報の記録はどの月に属する配送なのか?」という問題が発生します。「日報の日付を基準」でいいのか、「取引先の受注データを基準」にする必要があるのか、2つのテーブルの間で間違いのないルール付けが必要です
現実的に計算できているのだから目に見える設定が無いだけで何かしら(仕事上のルールであるとか、取引先との契約内容であるとか)で紐づいているんですよ。
「関係性をうまく説明できること」
「データベース(ACCESS)でその関係性を設定できること」
理論と実装ですね。順を追って考えていきましょう
データベースとはなにか?という話なら、難しいモノかもしれませんね
結構テンプレネタだと思うんだけど有名どころのサイトでも解説ないよね
連結されたコンボ ボックスに値を追加する
コンボボックスのリスト外入力処理(システムコマコさん)
コンボボックスから値集合ソース編集画面を表示する方法(T'sWareさん)
ご回答ありがとうございます。
>これはどうやって?
元になるテーブルをインポートしたあと、そのテーブルを選択しつつ作成リボンのフォームボタンを押し、
その後フォームレイアウトのデザイン、のリボンでボタン作成し、
コマンドボタンウィザードで新しいレコードの追加を割り当てたらできました。
この場合、ボタンを一回押すとレコード追加はできるのですが、
ボタンを一回押すだけでレコード追加だけでなくSub hoge~End Subも一気に実行されるようにしたいです。
(機能追加したい)
どこにSub hoge~End Subを記述すればよろしいでしょうか?
→(自己解決したのでメモ代わりに)
レコード追加で作ったボタンにSub hoge~End Subだけでなく、レコード追加のコードも入れたらできました。
また質問させていただくこともあるかもしれませんが、よろしくお願いいたします。
現在は2つのテーブルは紐付いていません
集計してexcelにコピペしてexcelで計算しています
たんに、テーブルにデータをいれているだけでほぼexcelのシートに保存しているのとかわらない状態です
取引先ごとの利潤が分かればいいので
それぞれのテーブルの取引先ごとの集計でたし引きすればいいのかな?とか思ってましたがそんな単純なものでもないみたいてすね
取引先だけでは一意に特定できないですよね。
取引先と日付で特定できるのですか。
現在はどのような手順で2つのテーブルを紐づけて、計算しているのでしょうか。
まずは、2つのテーブルのデータ例を提示して具体的に、そこからどのように計算しているか、
説明してもらえませんか。
売上テーブル
配送テーブルに
共通しているフィールドは”取引先”があります
(売上テーブルではどこに請求するか把握するため、配送テーブルでは給与明細にどのどこからの配送をどれだけ配送したかを把握するためです)
これと日付でリレーションすると、11月のA社の売上はいくら、そのうち従業員への歩合はいくら、と計算できるでしょうか?
帳票フォームにすればいいでしょう。
同じ値が連続する場合が多いフィールドはVBAで規定値プロパティを設定すればいいでしょう。
同じ値のデータを連続して入力したいなら、連続入力のVBAをショートカットキーなどに割り当てるなど工夫します。
テーブル構成や詳細な仕様が不明なので、とりあえずのアドバイスはこんなところです。
売上テーブルと配送テーブルを紐づけするフィールドはありますか。
あるなら、クエリでそのフィールド同士で結合すればいいだけです。
ないなら、各テーブルにどのようなフィールドがあって、現状はどのように対応させているかの説明してください。
に近いようなものはできています。上記のようなものは紙の伝票をベースにしたものだと思うのですが
複数の日付が連続して存在するデータの入力には適していないような気がします
今日のデータを入力しているときでも、その上には昨日のデータが表示されているようなレイアウトのほうが適している気がするのですが、どのようにしたらよいかまではわからなくて質問しました
データベースがやりたいのであれば、とりあえず、Excelに新しいシートを作り、日付、取引先、商品名を手入力して下さい。この時、組み合わせが同じものは1つだけとします。
画像のシートにデータを登録する際は、まず、新しいシートに画面を切り替えます。登録したい日付・取引先・商品名の組み合わせがあるか探して下さい。なければ登録した後、画像のシートに戻ります。日付・取引先・商品名、その他のフィールドを手入力したら、新しいシートに切り替えて次の組み合わせを探します。以後、繰り返します。
ちらつく、視覚的にわかりにくい、Excelインポートのほうが早い、これらを土台にデータベースは成り立ちません。今までのExcelの何倍も手間暇かけたら、やっとデータベースが始まると思います。
Accessではどこまで出来ていて、どこからが分からないのでしょうか。
それとも、Accessの方はまったく手を付けていない状態ですか。
とりあえずは、Accessで構築するなら下記のような手順になります。
どこまで出来ていますか。
オブジェクト指向の流行はピークを過ぎたんじゃないでしょうか?得意分野と伸び代の目処がついたという意味で。少なくとも、データベースの設計にはイマイチみたいですよ。