T在庫(テーブル名)

ID 日付 入庫 出庫 在庫 
1  1/1 2 1 1
2 1/2 3 2 1
3 1/2 4 3 1

クエリの在庫フィールドに在庫=入庫-出庫の式を入れ在庫が出るようにはできたのですが
在庫合計の所も計算するためにはどうしたらよいでしょうか

ID   日付 入庫 出庫 在庫
1  1/1 2 1 1
2 1/2 3 2 2
3 1/2 4 3 3
みたいな感じにしたいのですが詳しく教えていただけませんか?
access初心者なので簡単に教えていただけると助かります。
よろしくお願いします。

A 回答 (2件)

DSumについて調べてください。


紹介したサイトの解説にも
[テーブル名]から[条件式]を満たすレコードの[フィールド名]のデータ数を合計する。
とあるようにテーブル内にあるフィールドの合計を求める関数です。

DSum(”在庫",T在庫",ID<="&[ID])
は式として成り立っていません。書くなら
DSum("在庫","T在庫","ID<=" & [ID])
ただしT在庫というテーブルに在庫というフィールドはありませんので合計は出ません。

最初の回答に書いたように
IDがnのときの在庫はIDがn以下の入庫の合計から出庫の合計を引いた値
を式で表すなら
DSum("入庫","T在庫","ID<=" & [ID]) - DSum("出庫","T在庫","ID<=" & [ID])
    • good
    • 0
この回答へのお礼

ありがとうございます。
そうゆうことだったのですね!
すごく助かりました!
何回も回答いただきありがとうございました。

お礼日時:2017/07/20 17:05

こちらを参考に作成してみて下さい。


https://dekiru.net/article/15074/

ID順に在庫を計算していくなら
IDが1のときの在庫はIDが1の入庫から出庫を引いた値
IDが2のときの在庫はIDが1,2の入庫の合計から出庫の合計を引いた値
IDが3のときの在庫はIDが1,2,3の入庫の合計から出庫の合計を引いた値

IDがnのときの在庫はIDがn以下の入庫の合計から出庫の合計を引いた値
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
T在庫(テーブル名)

ID 日付 入庫 出庫 在庫 累計
1  1/1   2  1   1
2   1/2   3  2   1
3   1/2   4  3   1
在庫のフィールドに在庫:[入庫]-[出庫]と入力し
累計のフィールドにDSum(”在庫",T在庫",ID<="&[ID])と入力したのですがうまくいきません。

問題点具体的な改善方法教えていただけないでしょうか?
よろしくお願いします。

お礼日時:2017/07/19 07:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Qaccess 翌日に繰り越す方法

お小遣い帳を作成したいと思っているのですが入金‐出金=残高みたいな感じで作ったとします。
上記で余った残高を翌日の入金のところに表示させるにはどのような操作が必要になるでしょうか?
どのような計算式を使えばよろしいでしょうか?

Aベストアンサー

まず、今現在の所持金を
残高に書く

入ってきた金が入金に

使った金が出金に

所持金の全額が
残金に成る


残高を入金には書かない
書いちゃうと
二重入金に成るから
手持ちの金と合わないよ

Qアクセス 在庫管理表 作り方

アクセスで在庫の管理表を作ろうとしてるのですがうまくいきません。
初心者なもので詳しく教えていただきたいです。

T在庫テーブル これが主要テーブルです。
ID(オートナンバー型) 日付(日付/時刻) 氏名(数値) 品名(数値) 規格(数値) 単価(通貨)単位(数値)

T氏名 サブ     
ID(オートナンバー) 氏名(テキスト)
             山本
             菊池
T品名 サブ
ID(オートナンバー) 品名(テキスト)
             ネギ
             リンゴ

T規格 サブ
ID(オートナンバー) 規格(テキスト)
            1×2
            2×2

T単位 サブ
ID(オートナンバー) 単位(テキスト)
              本
              個

T在庫からクエリを作り、すべてのサブテーブルのIDとT在庫の項目とリレーションを組み
テーブル欄を変更し
Q在庫からデータシートでフォームを作ります。
フォームは氏名、品名、規格、単位をリストボックスで作りたいのですが
これをつくると連動して動きません。

どうすればよいでしょうか?

アクセスで在庫の管理表を作ろうとしてるのですがうまくいきません。
初心者なもので詳しく教えていただきたいです。

T在庫テーブル これが主要テーブルです。
ID(オートナンバー型) 日付(日付/時刻) 氏名(数値) 品名(数値) 規格(数値) 単価(通貨)単位(数値)

T氏名 サブ     
ID(オートナンバー) 氏名(テキスト)
             山本
             菊池
T品名 サブ
ID(オートナンバー) 品名(テキスト)
             ネギ
...続きを読む

Aベストアンサー

オートナンバー型はAccessが勝手に番号を振っていく型です。
T氏名サブのIDはオートナンバー型ではなく、
T在庫テーブルの氏名フィールドに記された数値を入れます。

例えば山本さんの数値が10であれば、T在庫テーブルの氏名に10、
T氏名サブの山本さんのIDにも10を入れなければなりません。
他の項目も同様です。

QQRコードでAcceseに入力

在庫を管理するためにAccese2007で在庫一覧表を作りました。
在庫棚にQRコードをつけてスマートフォンでそのQRコードを読み取るとAcceseの画面が開き入力できる。みたいな感じにしたいのですがどうしたらよいでしょう?
QRコードを読み取りサーバーにアクセスさせフォームを開いて入力?
↑これは可能でしょうか?
よろしくお願いします。

Aベストアンサー

出来るけれども、無理。プロの領域

まず、アクセスはPCの領域。スマフォは、スマフォの領域。
つまり、ハードが違う、その結果それに乗っかてる、ソフトが全く別物。
開発言語が違う。つまり、スマフォで作るソフト。参考書もない(ゲームは有るけど)

ベースの部分から理解出来ていないと推察するから・・・・。

http://www.lancers.jp/

Qaccess レコード数が増えない、テーブルには保存されている。

いつもお世話になっております。

フォームから入力してるデータが、テーブルには保存されているのですがフォームのレコードとして保存されなくなってしまいました。主キーは関数で最大値+1に設定しているのですが、NO・13までは普通に格納されています。レコードを新規で作成するとNO・14になりますが保存してフォームを閉じるとレコード数は消えて総レコード数は13と表示されていますが、再度新規で作成するとNO・15のようになります。

最初に入れていたデータをできれば削除せずに上手くフォームにも表示されるようにしたいです。
フォームだけではなく、クエリ、レポート同様に反映されなくなってしまいました。
どんどん悪化してしまいます、どなたか改善策をご教授ください。

Aベストアンサー

想像ですが、そのフォームは新規入力するために作られているからではないですか?
作りかえるか、別にフォームを作って、フォームの元になるクエリを全レコードを参照するようにして、開いた時に新レコードに行くようにすればいいと思いますよ。

QACCESS2016 在庫数に応じた枚数のラベルを印刷したい

初心者ゆえよろしくお願いします。

【前提】
・商品が入っている箱に貼るラベルを必要枚数分印刷したい。
・1箱=50個入
・(例)在庫数が200個の時は、4枚印刷(200÷50=4)
・(例)在庫数が180個の時は、3枚印刷(180÷50=3.6 小数点以下は不必要)

テーブルとフィールドは以下の通りです。

テーブル:T_在庫数
フィールド:「商品名」「在庫数」

商品名 在庫数
 A   200
 B   180

どのようなクエリを作り、レポートで必要枚数分のラベルを印刷できるのか
ご伝授の程よろしくお願いいたします。

Aベストアンサー

こちらを参考に、VBA をいっさい使わない方法で。
https://web.archive.org/web/20141018090940/http://www.f3.dion.ne.jp/~element/msaccess/AcTipsRptHowToPrintRabelSpecificNumber.html

まず、最初の
「宛名ラベルを指定枚数 印刷する方法」をざっとご覧になって
連番テーブルを作ってください。
ここでは、固定枚数を印刷する方法ですが、
その応用になります。

次に、中ほどの
「宛名ラベルを個別に枚数を指定して印刷する方法」を
さらっと見てください。
これは [印刷枚数] というフィールドがあることを前提としていますが
応用で、枚数を計算で求めたものを使用します。

リンク先とフィールドの記述等、ちょっと替わります。
クエリの
[フィールド]
枚数: [在庫数]\50
[表示]
オフ
[抽出条件]
>=[連番]

図を参考にしてください。
なお 連番テーブルは「T_連番」という名称になっています。

一応、念のために。
https://msdn.microsoft.com/ja-jp/library/office/gg264594.aspx

こちらを参考に、VBA をいっさい使わない方法で。
https://web.archive.org/web/20141018090940/http://www.f3.dion.ne.jp/~element/msaccess/AcTipsRptHowToPrintRabelSpecificNumber.html

まず、最初の
「宛名ラベルを指定枚数 印刷する方法」をざっとご覧になって
連番テーブルを作ってください。
ここでは、固定枚数を印刷する方法ですが、
その応用になります。

次に、中ほどの
「宛名ラベルを個別に枚数を指定して印刷する方法」を
さらっと見てください。
これは [印刷枚数] というフィールドがあること...続きを読む

QパソコンでACCESSを習おうと思っているのですが

今のパソコン教室はまだ2013でやっているようです。2016になると試験方式が少しかわるみたいですね。新しくFOM出版のサイトを見ていたら2013だと、今まで使っていたCDでは一問一答式でわかりやすかったのですが、そもそも今2013年版Access売ってないですよね。どっちでとったほうがいいのだろうかと悩んでいます。
2016から一問一答式のCDがついてないみたいで。それも不安です。

Aベストアンサー

>そもそも今2013年版Access売ってないですよね。

パッケージ版は製造中止のようですが、Office365ならOffice2016かOffice2013を選択可能(いずれかで片方で有ればいつでも切り替え可能)のようです。

一カ月は無料で試用できますので、切り替えの確認も含めて試されてはどうでしょうか。

QAccessでレコードを別テーブルへコピーするには

AccessのVBAを教えてください。
「名簿1」というテーブルがあり、そのテーブルの1つのレコードを「名簿2」という別テーブルに移動させたいです。

「名簿検索」フォームがあり、「名簿1」のデータを検索して表示させることができます。
その表示させたある特定のレコードを、「移動」というボタンを押すと「名簿2」へ移動させるような作りにしたいです。
「名簿1」と「名簿2」は全く同じ構造のテーブルです。

初心者のため、一番簡単な方法でやりたいです。
レコードを「名簿2」へコピーし、その後「名簿1」のレコードを削除しようと思ったのですが、なかなかうまくできません。
insert into を使ってみたのですが、テーブルのデータ全てがコピーされてしまいます。

Access2010を使用しています。
よろしくお願いいたします。

Aベストアンサー

No.1です
以下を追加してみてください(変数名は任意です)
Dim RSF As Recordset ← フォームに表示されているレコード用
DIM I As Integer    ← カウンター用の変数

Set RSF = Me.Recordset でRSFにフォームに表示されているレコードセット

RS.AddNew から RS.Update の部分を以下に変更します

RS.AddNew
 For I = 0 To フィールドの数-1 ← フィールド数が20ならば19
  RS.Fields(I) = RSF.Fields(I)
 Next I
RS.Update

これでコピーできます。

QAccess フォームのテキストボックスに入力した年月でテーブルのフィールド名を検索し、レコードを表

Access フォームのテキストボックスに入力した年月でテーブルのフィールド名を検索し、レコードを表示させることはできるのでしょうか?
方法があればご教授ください。
よろしくお願いします(❁ᴗ͈ˬᴗ͈)

Aベストアンサー

>Dim myDB As Databaseでコンパイルエラーで『ユーザ定義型は定義されていません。』のエラーが出るのですがどうしたら良いでしょうか…?

Dim myDB As Database → Dim myDB As DAO.Database
Dim myTB As TableDef → Dim myTB As DAO.TableDef
このように DAO. を付けてみたらどうですか?

それでもエラーが出るようでしたら、Accessのバージョンと、VBAエディタ のツールにある「参照設定」で
チェックの入っている項目を教えてください。

Access2000か2002でしたら、参照設定で Microsoft DAO 3.6 Object Library にチェックが入っていないのかも。。。。

QACCESS2010について

昨日までは通常通り、データ入力できていました。
突然、データ入力画面のボタンを押すと”Microsoft Accessは動作を停止しました”、”問題が発生したため、プログラムが正しく動作しなくなりました。プログラムが閉じられ、解決策がある場合はWindowsから通知されます”となり、プログラムが終了となります。
特に変更していないので、原因が不明です。
どなたか教えてください。宜しくお願いします。

Aベストアンサー

WINDOWS UPdateかな
https://www.microsoft.com/ja-JP/download/details.aspx?id=13255
データベースエンジンを再導入してみてください。
64/32ビット版がありますのでご注意を
だめならアクセスの再インストールです。

Qaccessでの文字列の混ざった連番処理について

お世話になります。
検索をかけても望む形の物がでませんのでご教授願います。

おそらくクエリでできると思うのですが、
文字列+数字の連番処理をかけたいです。
具体的には
C0001
C0002
C0003
C0004

こういった形です。

オートナンバーでフォーマットを変える方法を見つけたのですが、保持している情報が
C0001なら1になってしまい、困っています。
C0001という文字列で保存できる方法をお願いいたします。


環境 access2010

Aベストアンサー

No.1です。
こちらの簡易的なテーブルとクエリでは問題ないのですが、何か当方と異なる点はありますか?

テーブル:機材在庫_C
フィールド: ID   │オートナンバー型
       機材名 │短いテキスト

クエリ:クエリ1
  フィールド│式1: "C" & Format([ID],"0000")│ 機材名
  テーブル │                │機材在庫_C


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング