• 締切済み

前のレコードから追加のレコードに自動で写したい

accessの初心者です。コピー用紙の管理を行っております。 A4のコピー用紙を、最新の在庫をA4更新在庫としております。 次のレコードで、更新在庫をA4前在庫という形で、VBAで自動的に写したいのですが、 どのようなプログラムを組めばいいのでしょうか。 初心者なので、最初の方から教えていただければ助かります

みんなの回答

回答No.1

たとえばですが、 テーブル名:tbl 日付:日付時刻型 商品名:テキスト型 出庫数:長整数型 入庫数:長整数型 で、 日付    商品名 出庫数 入庫数 2011/10/01  a    20  100 2011/10/02  a    10   1 2011/10/03  a    10 2011/10/04  a       20 2011/10/01  b       50 2011/10/02  b    10 2011/10/03  b    10 2011/10/04  b       30 2011/10/02  a       19 クエリをSQLビューに切り替えて下記をコピペすると (クエリをデザインビューで開いて右クリックするとコンテキストメニューにあります) SELECT tbl.日付, tbl.商品名, tbl.出庫数, tbl.入庫数, CLng(Nz(DSum("出庫数","tbl","日付 <=# " & [日付] & "# AND 商品名 ='" & [商品名] & "'"),0)) AS 出庫累計, CLng(Nz(DSum("入庫数","tbl","日付 <=# " & [日付] & "# AND 商品名 ='" & [商品名] & "'"),0)) AS 入庫累計, 入庫累計-出庫累計 AS 在庫 FROM tbl ORDER BY tbl.商品名, tbl.日付; で、 このようになります。(レイアウトが崩れてしまうのはご容赦を) (メモ帳にでも張り付けてフォントをP付ではないMSゴシックなどだと見やすいです) 日付    商品名 出庫数 入庫数 出庫累計 入庫累計 在庫 2011/10/01   a   20   100    20   100  80 2011/10/02   a       19    30    120  90 2011/10/02   a   10    1    30   120  90 2011/10/03   a   10        40    120  80 2011/10/04   a       20    40    140  100 2011/10/01   b       50     0    50  50 2011/10/02   b   10        10    50  40 2011/10/03   b   10        20    50  30 2011/10/04   b       30    20    80  60 ではダメかいな? デザインビューに切り替えて確認もできます。 商品(コピー用紙)ごとの在庫なら SELECT Max(tbl.日付) AS 日付の最大, tbl.商品名, SUM(tbl.出庫数) AS 出庫数の合計, SUM(tbl.入庫数) AS 入庫数の合計, 入庫数の合計-出庫数の合計 AS 在庫 FROM tbl GROUP BY tbl.商品名; で、 日付の最大 商品名 出庫数の合計 入庫数の合計 在庫 2011/10/04 a        40     140  100 2011/10/04 b        20     80   60 になります。  何となくですがExcel的な考え方でやっているような雰囲気がします。

yacchan013
質問者

お礼

回答、ありがとうございます。 一度やってみます。 もう一つ教えていただけるのなら、 前日の更新在庫を、自動的に当日の前在庫にでている ようになっている状況が理想なのですが、お教えいただけないでしょうか?

関連するQ&A

  • Microsoft Accessのテーブルで新しいレコードを自動的に作成

    はじめまして。初めて、投稿します。Nightlightと申します。 会社でMicrosoft Access2003を使ってスケジュール管理を任されています。 どうしても出来ない技があります。どうかアドバイスお願いします。 (初心者なので、分かりやすくお願いします...すいません) 問題は、日付のフィールドが二つあります。一つは本日の日付で二つ目は予約日の日付です。予約日の日付を入力すると、自動的に新しいレコードが作成され、日付が最新されている以外は他の情報がそのまま残っている.....これをしたいのです。そうすれば、何回もスケジュール情報を入力しなくても、自動的に次の予約日にアップされているようにしたいです。どうか、どうかお助けお願いします。

  • Accessでデータを自動でインポートしたいのですが

    Accessの初心者です。よろしくお願いします。 在庫管理をAccessを使って計算や、リスト作成を自動化しようと思っています。 別のパソコンでエクセルで作られた在庫表を自分のパソコンのMy Documentsにコピーをし、それをAccessのシステムにインポートするのですが、毎回のことなのでこのインポートを自動化したいのですが、その方法を教えていただけませんか。 よろしくお願いします。

  • EXCELで自動的にデータレコードを追加する方法について

    EXCELシートのレコードを自動的に追加して生きたいのです。というのは2枚のEXCELシートがあって1枚のシートは入力フォームになっていて他のフォームにアクセスのようなレコードを作り1行目のレコードにリンクさせます。この場合1枚目の入力シートにデータ追加するたびに2枚目のシートにレコードが追加される方法がないでしょうか。マクロを使ってコピー貼り付けではできません。もちろんデータのフォームではデータ貼り付けを受け付けませんのでだめです。アクセスまがいのことをEXCELでしようとしているのですが。どなたかヒントいただけませんでしょうか。

  • エクセルでレコードを自動作成するには?

    エクセル中級?者です。マクロをかじった程度ですが、 下記のパターンでレコードを自動追加作成するのに、簡単な方法はありますか? 項目      商品    数量  レコード1      A     3     レコード2       B     2         ↓ レコード1      A     1 レコード2      A     1 レコード3      A     1 レコード4      B     1 レコード5      B     1 商品別の n個の合計データより、単品毎n個のレコードを自動作成したいのです。 合計データだけでも2,000程あり、×約5レコードで10,000はコピーするだけでも大変で、なんとかエクセルのマクロ等で自動作成できないものでしょうか?  シートやブックが変わっても結構です。宜しくお願いします。

  • Accessで特定のレコードの更新規制について

    私はAccess2000を使用している初心者です。 単票フォーム上であるレコードのチェックボックスにチェックしておくと、そのレコードの更新ができないようにできませんか? VBAはよくわかりませんのでマクロで設定できる方法があれば教えてください。マクロでは無理な場合はVBAでもかまいません。誠に勝手なことを申しますがよろしくお願いいたします。

  • アクセエスのレコードの更新をVBAでするには?

    アクセスで、一覧表のフォームにボタンを取りつけています。レコードの内容を変更したら、ペンの形のマークが現れますね。これは変更中ということですが、そこでボタンを押しても変更は確定されないから、更新確定させたいのです。 それで、DoCmd.Requery を最初の行に入れてみたら、元の一覧表は最初のレコードに飛んでしまう。 元の一覧表の位置を動かさないために、Ctrl+Enter キーを押して更新確定させたような状態をVBAで実現する方法あるのでしょうか? よろしくお願いします。

  • 確認ダイアログを出さないでレコード追加

    MS ACCESS2000です。 今、プログラム的に(つまり自動的に)テーブルにレコードを追加したいのですが、レコードの追加を確認するダイアログが出てしまいます。 今は、以下のようにしています。 docmd.runsql("insert into レコード名 ("フィールド") value (値)") ちょっと、細かいとこ違うかもしれませんが・・・ ユーザーにダイアログを出さないように、レコードと値を追加する方法はないでしょうか?

  • ACCESSでレコード追加ができない

    ACCESSでレコード追加ができない access2003のADPファイルとSQLServer2005で利用しております。 複数のユーザーへ、同じADPファイルを配布しており、設定も勝手に変えられないように制限しています。 テーブルにレコードを追加するフォームがあるのですが ほとんどのユーザーは問題なく追加できるのですが、 特定のユーザーがレコードの追加ができなくて困っております。 (フォームのデザインの設定はレコード追加可能にして配布しています。) 追加できない問題のユーザーも、参照などは問題なくできています。 1.アクセスのレコード追加の可否がPCごとに設定可能で、配布したADPファイルの設定を無視してしまうような機能があるのでしょうか? 2.PCになんらかの問題がある場合、どのように検証を進めればよいのか、まったくわかりません。   参考になるサイト、同様な体験の事例での解決方法などなんでもいいので教えていただければ幸いです。 ※ちなみに、利用しているPCは同じメーカーの同じ型番で、MicrosoftUPdateの更新も常に最新状態を保っています。OSはXPのプロフェッショナルです。 宜しくお願い致します。

  • access 更新クエリ?追加クエリ?

    access超初心者です。 いま、下記のような在庫表をつくっています。 (出庫テーブルは省略してます) 入庫テーブル  ID  入庫日付  大分類  中分類  小分類  数量   在庫テーブル  ID  大分類   中分類   小分類  最初の数  入庫数   出庫数 入庫更新クエリ *入庫→在庫  大分類        中分類           小分類 ・入庫の全レコードと在庫表の同じ結合フィールドのレコードだけを含める で結合しています。 *在庫表の入庫数  レコードの更新で  NZ([在庫数]![入庫数],0)+NZ([入庫]![数量],0) といれています。 入庫テーブルに入力していき その都度、 入庫更新クエリにて更新し 在庫表に反映させていきたいと思っています。 入庫表には、この先 在庫表にないものもでてくるので 在庫表にないものは 追加、あるものは、更新としていきたいです。 今の状態だと 入庫表のものは、更新クエリでいったん在庫表に反映されるのですが 入庫表にレコードを追加して また更新クエリをかけると 在庫表が、前に更新したレコードの分も 重複して反映してしまいます。 これをなくすには、どういった方法が ありますか? 宜しくお願いいたします

  • レコードセットに新規追加する

    Access2013 VBAで ■テーブルa ・id ・名前 ・id2 とあり このテーブルのレコードセットを以下のように作ります。 dim Rec = dao.Recordset Set Db = CurrentDB set Rec = Db.OpenRecordset("Select * from [テーブルa] where id2 = " & 2, dbOpenDynaset) この時、このテーブルにid2=2のレコードが何もない場合、この生成したRecで、 Rec.AddNew Rec.Fields("名前").value = "名前" Rec.Update と出来ますでしょうか? よろしくお願いします。

専門家に質問してみよう