ACCESSで在庫管理 備考欄の組み込み方

このQ&Aのポイント
  • ACCESSで在庫管理を始めました。備考欄を設けたら、備考を入れたものは数が別でカウントされるようになってしまいました。
  • 現在の在庫管理の状態は、商品ベースと入出庫明細のテーブル、入荷票と出荷票のフォーム、在庫表と要発注表のクエリ、在庫表と要発注表のレポートという構成です。
  • 備考欄を大きめにとって、そこに備考をどんどん追加するような形式の在庫管理をしたいのですが、可能でしょうか?
回答を見る
  • ベストアンサー

ACCESSで在庫管理 備考欄の組み込み方?

ACCESSで在庫管理を始めました。 なんとか在庫管理だけはできるようになりましたが、 備考欄を設けたら、備考を入れたものは数が別でカウントされるように なってしまいました。 今の在庫管理の状態は <テーブル> ・商品ベース(商品ID、商品名が入っている) ・入出庫明細 <フォーム> ・入荷票(入出庫明細テーブルに入力される) ・出荷票(入出庫明細テーブルに入力される) <クエリ> ・在庫表 ・要発注表(在庫が1以下のものだけ表示する設定) <レポート> ・在庫表(クエリの在庫表のレポート) ・要発注表(クエリの要発注表のレポート) という感じです。 フォームに商品IDを入れると、自動で商品名が表示されるようにしており(DLOOKUP)、 その下に入庫や出庫数を入力する欄、最後に備考入力欄を設けています。 たとえば、返品によって在庫が1つ増えたときに「返品」などというふうに 備考を入れたいのですが、そうすると在庫表や要発注表で 備考情報なしの物は今までの入出庫明細の合計で1行に在庫数が ずばっと出ますが、備考を入れた物はその下に同じ商品IDで 数行に出ます。 (結局最後はそれを手で計算する) 本当は、1行におさめて、備考欄を大きめにとって、そこに備考は どんどん追加されるような感じにしたいのですが、可能でしょうか? 質問の仕方も下手ですみません。 補足要求してください。宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#140971
noname#140971
回答No.13

>(入荷数+出荷数) AS 現在庫 ちょっと、DBSum関数に落とし穴があったみたいです。 テストで見落としていました。 まあ、還暦目前のじっちゃまのことです。 許されたし。 Public Function DBSum(ByVal strField As String, _ ByVal strTable As String, _ Optional strWhere As String = "") As Variant ・・・・ End Function このように戻り値の型を Variant にしています。 ですから、 SELECT DBSum("数量","入出庫明細") AS AAA, DBSum("数量","入出庫明細") AS BBB, AAA+BBB; AAA=80 BBB=80 AAA+BBB=8080 とクエリではなります。 これは、DBSum関数は、対象列や戻り値の型を知って使えということです。 SELECT CDbl(DBSum("数量","入出庫明細")) AS AAA, CDbl(DBSum("数量","入出庫明細")) AS BBB・・・ AAA+BBB=160 CINT・・・・整数 CLng・・・・長整数 CDbl・・・・倍精度 このように、列[数量]の型に変換してみて下さい。 そうすれば、この不具合は是正されます。 まあ、戻り値を Variant から変更すれば済むことですが・・・。 さて、どっちが良いのかはプロではないので明確な意見を持ち合わせていません。

Winniethepooh
質問者

お礼

ありがとうございました!!遂に出来ました!! でも、今回できたのは、Husky2007さんに作っていただいたあの標準モジュールあってのものですよね。 やっぱりかなり詳しくないとできないですね( ̄~ ̄;) 本当に長々と根気強く教えていただいてありがとうございました。 お茶ぐらいごちそうしたいもんです。

その他の回答 (12)

noname#140971
noname#140971
回答No.12

Len(備考& '') で、なんで列[備考]が空欄か否かが判るのか?つまり、真(True)か偽(False)を判定できるのか? Len(備考') ではなく '' を付加しているのはなぜか? 後者は、Len関数が空値を引数にすれば真偽を判定できないから。 前者は、真は0以外、偽は0という約束事があるから。 [イミディエイト] ? CBool(0) False ? CBool(1) True ちっと、意味不明かも知れないので補足しておきます。

noname#140971
noname#140971
回答No.11

>空欄のときも区切り表示として「;」が出るみたいですが・・・。 [イミディエイト] ? DBSelect("SELECT 備考 FROM 入出庫明細 WHERE 商品ID='A06-123' AND Len(備考& '')") 返品;通常 ? DBSelect("SELECT 備考 FROM 入出庫明細 WHERE 商品ID='A06-123' AND Not 備考 is Null") 返品;通常 列[備考]が空欄(=Null,長さ0)でなけりゃという条件をWhere節に追加すれば回避できます。 Len(備考& '') Not 備考 is Null 一般的には後者ですが Access では前者を多用する向きも・・・。 >最初の10 20 30 40 にも意味があるんですか?? これらは、行番号です。

Winniethepooh
質問者

お礼

ありがとうございます。 Len(備考& '')というほうにしました。 すいません、それと・・・ (入荷数+出荷数) AS 現在庫 を追加してみたんですが、数の計算ではなくて、数を文字列として 認識しているのか、たとえば入荷合計数が10、出荷合計数が5だと 現在庫105 ってなってしまいます。 これで最後の質問だといいんですが。(^^;

noname#140971
noname#140971
回答No.10

もう終ったと言えば終わっているし、まだだと言えば、まだ・・・。 >? DBSum("入荷数","入出庫明細","商品ID='" & [商品ID] & "'") AS 入荷数 でやってみたら、1行下に入荷数の合計がピッと出ました。 出る訳はないのだが・・・。 ? DBSum("入荷数","入出庫明細","商品ID='A06-123'") なら出ます。 念のために、以下の入出庫明細の備考欄を連結表示してみます。 入出庫明細: ID__日付____________商品ID____数量___備考 1___2007/10/10__A06-123__30_____通常 2___2007/10/10__A06-123__20_____返品 [イミディエイト] ? DBSelect("SELECT 備考 FROM 入出庫明細 WHERE 商品ID='A06-123'") 返品;通常 関数のテストだから、='"& [商品ID]・・とかAS 入荷数とかは書かないで行います。 ===================================================================== ここまで済んだら、ANo4に戻って、1,2,3,4と攻めて終了です。 ここで諦めちゃだめです。 1981年に初めてプログラミングした時には、 10 INPUT A 20 INPUT B 30 C=A+B 40 PRINT C この僅か4行を理解するのに2ヶ月考え続けました。 根性だけが解決します。

Winniethepooh
質問者

お礼

おはようございます。 早速ですが!!やっとやっと備考欄が表示されました!! 贅沢ですが、空欄のときも区切り表示として「;」が出るみたいですが これは非表示にすることもできますか? それと、在庫数表示の式をすっかり忘れていて、最後にポンと (入荷数+出荷数) AS 現在庫 を追加してみたんですが、数の計算ではなくて、数を文字列として 認識しているのか、たとえば入荷合計数が10、出荷合計数が5だと 現在庫105 ってなってしまいます。 自分が試せる範囲として("入荷数"+"出荷数") AS 現在庫なんてやってみたら 現在庫 入荷数出荷数 と出ました。 なるほど~でした。。。(・_・;) 1981年からプログラミングを!! 私が生まれた年ですね。プログラミング歴26年なんですね。尊敬~~。 まだまだパソコンなんて普及してない頃ですよね。すごい。。。 ちなみに、その4行の意味、わかりません。。 最初の10 20 30 40 にも意味があるんですか?? 意味がないのなら、プリントしたCはAとBを足したものってことでしょうか?

noname#140971
noname#140971
回答No.9

テーブル[入出庫明細]のテーブル構造を示されたし。 入出庫明細: 商品ベース_商品ID______文字列 入荷数______________________数値 となっていますか? 商品ID______________________文字列 入庫数______________________数値 の間違いじゃないですか? エラーメッセージでは、テーブルが見つからないではなくパラメータ不足。 つまり、テーブルに存在しない列名が指示されているという意味。 この場合、集計列の[入荷数]かもしれないし条件文の[商品ベース_商品ID]かも知れません。

Winniethepooh
質問者

お礼

ありがとうございます。 アドバイス通りでした。条件文が違ったようです。 ? DBSum("入荷数","入出庫明細","商品ID='" & [商品ID] & "'") AS 入荷数 でやってみたら、1行下に入荷数の合計がピッと出ました。 これでOKですよね! 出荷数もOKでした。 最後に ? DBSelect("SELECT 備考 FROM 入出庫明細 WHERE 商品ID='" & [商品ID] & "'") AS 備考欄 をイミディエイトウィンドウでテストしたところ、 「コンパイルエラー:  修正候補:式」 と表示されました。 まだ終わりではないんですよね。(>_<。)

Winniethepooh
質問者

補足

テーブル[入出庫明細]のテーブル構造はご指摘の通り↓です。 商品ID______________________文字列 入庫数______________________数値

noname#140971
noname#140971
回答No.8

なーんだ、主キーが長整数ではなく文字列だと最初から言ってくれれば・・・。 数量=1 --------------> 数字列 品名='A-1' -----------> 文字列 日付=#2007/01/10#----> 日付・時刻型 このように、文字列の値はシングルクォーテーション(’)で囲むという約束事があります。 [イミディイト] ? DBSum("入荷数","入出庫明細","商品ベース_商品ID='A06-123'") で成功する筈です。 DBSum("入荷数","入出庫明細","商品ベース_商品ID='" & [商品ID] & "'") ならば、同じようにシングルクォーテーション(’)で囲めば成功します。

Winniethepooh
質問者

お礼

ありがとうございます。 まだ同じエラーが出てしまいます。(補足に書いたエラーです)

Winniethepooh
質問者

補足

補足する場所を間違えました(>_<;) エラーの内容ですが 関数エラーメッセージ SELECT文の実行時にエラーが発生しました。(DBSum) ・Err Description=1 つ以上の必要なパラメーターの値が設定されていません。 ・SQL Text=SELECT SUM(入荷数) FROM 入出庫明細 WHERE 商品ベース_商品ID='A06-123' となっています。

noname#140971
noname#140971
回答No.7

DBSum(集計する列名, 集計対象テーブル名, 集計する条件) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ フォームのイミディエイトウインドウで先ずはテストされたがいいです。 [イミディイト] ? DBSum("入荷数","入出庫明細","商品ベース_商品ID=1") これが出来たら、1の部分を以下の用に修正! DBSum("入荷数","入出庫明細","商品ベース_商品ID=" & [商品ID]) 多分、列名、テーブル名、条件文のいずれかが間違っています。 ですから、レコード数に等しいエラーが出る訳です。 クエリですと、このようにエラーが出た場合には強制終了という悲惨な結果に。 まあ、エラー=中断というクエリシステムを自作するのが一番ですが、ちょっと、初心者には・・・。 ですから、せめて、一つひとつをイミディエイトウインドウでテストされたがいいです。 >別のモジュールとして登録しました。 標準モジュールは、自作関数のタイプ別に集約されたがいいです。 データベース関数-----DBLookup()、DBSum()、DBSelect() ファイルシステム関数--FileSize()、GetFileList() フォームシステム関数--FormIsLoaded() レポートシステム関数--EraseNonPrint() 共通記号定数--------Public Const conGotoMain = "^(+({HOME}))" 共通標準関数--------Rounds()、Pause()、CutStr() これは、私の標準モジュールのタイプ別分類と名称です。 何も、これに従う必要はありません。 が、一応の基本かと思います。

Winniethepooh
質問者

お礼

ありがとうございます。 モジュールは、一緒に登録しても「End Function」という文で 別々に登録してくれるんですね。自分の見解なんですが。 なので、アドバイスを受けて1つにまとめてみました。 ここまではOKでしょうか? イミディエイトウインドウなのですが、自分なりに調べて、 VisualBasicEditorの[表示]-[イミディエイトウインドウ]をクリックで 出したのですが、このことで合ってますか? そして、IDのほうは例えば「A06-123」というようなコードなので 「1」の代わりに「A06-123」を入れてテストしたらよいですか? 今のところ↑の方法でやってみていますが、エラー続きです。 でも、強制終了の必要がなくなり、助かってます。 今から列名、テーブル名をじっくり見なおしてみます。 条件文に間違いがあると、もう私にはわかりませんよね・・・(@_@;)

noname#140971
noname#140971
回答No.6

おしいです。実に、おしいです。 理由は、既に、成功しているからです。 >DBSum("入荷数","入出庫明細","商品ベース_商品ID=" & [商品ID]) AS 入荷数 をModule1として保存 この3つのモジュールを削除して作業は終了です。

Winniethepooh
質問者

お礼

おはようございます。 毎回迅速なご回答、本当にありがとうございます。 早速3つのモジュールを削除して試したのですが、やはり同じエラーが出てしまいます。 閉じても閉じても延々とそのエラーメッセージが出るので、強制終了しています。(-_-;) 最初に教えて頂いた、モジュールは2つに分けて登録するのかな!?と思って、 DBSum()~End Functionを1つのモジュールとして、 DBSelect()~End Functionを別のモジュールとして登録しました。 何か根本的に間違っていますか?(T_T) でも、おしいんですよね?(その言葉が励みです)

Winniethepooh
質問者

補足

エラーの内容ですが 関数エラーメッセージ SELECT文の実行時にエラーが発生しました。(DBSum) ・Err Description=1 つ以上の必要なパラメーターの値が設定されていません。 ・SQL Text=SELECT SUM(入荷数) FROM 入出庫明細 WHERE 商品ベース_商品ID=1 となっています。

noname#140971
noname#140971
回答No.5

<DBSelect関数について> これは、フォームのVBエディタのイミディエイトウインドウを開いてテストしてもいいです。 [イミディエイト] ? DBSelect("SELECT 備考 FROM 入荷明細 WHERE 商品マスター_ID=1") 返品;通常 ? DBSelect("SELECT 備考 FROM 入荷明細 WHERE 商品マスター_ID=1", "/") 返品/通常 ? DBSelect("SELECT 備考 FROM 入荷明細 WHERE 商品マスター_ID=1", ",") 返品,通常 つまり、DBSelect関数は条件に合致する全レコードの指定列を区切り記号で連結して一文で返します。 <アドバイス> 将来的には、入荷明細に行区分を追加されたがいいです。 [通常][返品][運賃][経費][無償][その他]などなど。 そうでなければ、 Left(DBSelect("SELECT 備考 FROM 入荷明細 WHERE 商品マスター_ID=1", ","), 36) などと、備考欄の長さ制限でもして置く必要があります。

noname#140971
noname#140971
回答No.4

>訂正が必要ですよね? もちろん。 >IDというのは商品IDと置きなおしていいのでしょうか? もちろん。 >DBSelect("SELECT ・・・・・;") のところが全然わかりません。 ステップバイステップで。 >DBSum() を標準モジュールに。 DBSelect() も標準モジュールに登録する必要があります。 まず、クエリーのデザインモードで商品マスターを配置して下さい。 そうして、以下の作業を・・・。 1____________________________________________________________________________________________________________________________ フィールド=品名 まずは、これだけ。 SQLビューに切り替えると SELECT 品名 FROM 商品マスター; となっています。 2____________________________________________________________________________________________________________________________ フィールド=入荷数: DBSum("数量","入荷明細","商品マスター_ID=" & [ID]) SELECT DBSum("数量","入荷明細","商品マスター_ID=" & [ID]) AS 入荷数 FROM 商品マスター; 次に、これに成功することです。 3____________________________________________________________________________________________________________________________ フィールド=備考欄: DBSelect("SELECT 備考 FROM 入荷明細 WHERE 商品マスター_ID=" & [ID],",") 商品マスター_ID=" & [ID]       |        |       |        +--------> 商品マスターの主キー列名。       +------------------> 入荷明細の商品マスターとリンクしている列名。 SELECT DBSelect("SELECT 備考 FROM 入荷明細 WHERE 商品マスター_ID=" & [ID],",") AS 備考欄 FROM 商品マスター; そして、これにも成功することです。 4____________________________________________________________________________________________________________________________ 以上を合成すること。 最も単純な、 SELECT 列名 FROM 商品マスター; の拡張。 SELECT 列名1, 列名2, ・・・・ 列名n FROM 商品マスター; まあ、これが一番判りやすいです。 そのためには、DBSum()、DBSelect()を標準モジュールに登録して単一Select文の限界を破ります。

Winniethepooh
質問者

お礼

迅速な回答ありがとうございます。 丁寧に教えていただいたおかげで、4までは成功しました。 意味もなんとなくわかりました。 で、次は違うエラーが出ました。。。 『クエリ式'DBSum("入荷数","入出庫明細","商品ベース_商品ID=" & ]商品ID])'のコンパイルエラーが発生しました。』 というものです。 モジュールの登録を間違ったのでしょうか? 文面通り受け取って、 DBSum("入荷数","入出庫明細","商品ベース_商品ID=" & [商品ID]) AS 入荷数 をModule1として保存 DBSum("出荷数","入出庫明細","商品ベース_商品ID=" & [商品ID]) AS 出荷数 をModule2として保存 DBSelect("SELECT 備考 FROM 入出庫明細 WHERE 商品ベース_商品ID=" & [商品ID],",") AS 備考欄 ををModule3として保存したんですが、 何か恥ずかしい間違いをしていそうで・・・。(なんとなくですが) ちなみに、最初に教えていただいた長いプログラム(?)は 別の名前で保存済みです。 本当にすみません。おしいですか?

noname#140971
noname#140971
回答No.3

訂正: 現在庫の計算式の+-に誤りが・・・。

関連するQ&A

  • Access初心者です。(Access2003)

    書籍の在庫管理のフォーム作成で、、 メインフォームとサブフォームにわけました。 しかし、サブフォームで 1つの商品を入力し、2番目の商品を入力すると、 先の1つめの商品入力の履歴が、2番目と同じになってしまいます。 (数量だけは1番目の入力通り残ってくれてます) <サブフォーム> ------------------------------ 申請書番号、商品コード、版、商品名、数量 ------------------------------ 1行目 0001 060 3-5 ACCESS入門書 5 2行目 0001 061 5-6 ACCESS応用書 3 ------------------------------- となるはずが、2行目を入力すると ------------------------------ 1行目 0001 061 5-6 ACCESS応用書 5 2行目 0001 061 5-6 ACCESS応用書 3 ------------------------------- となってしまいます。 商品名の箇所は、 商品コードと版を入れると自動で商品名が反映されるように、 コントロールソースに 「=DLookUp("商品名","T_商品","商品コード='" & [コード] & "'" & "And 版='" & [版] & "'")」、 としました。 構造情報は以下の通りです。 メインフォームの元は、 <テーブル:T_入出庫> ・申請書番号 ☆「T_入出庫明細」と結合 ・提出日 ・担当者 ・備考 など サブフォームの元は、 <クエリ:Q_入出庫明細_サブフォーム> ・申請書番号(T_入出庫明細) ・商品ID(T_入出庫明細) ・商品コード(T_商品) ・版(T_商品) ・商品名(T_商品) ・数量(T_入出庫明細) Q_入出庫明細_サブフォームの元は、 <テーブル:T_入出庫明細> ・申請書番号 ・商品ID ☆「T_商品」と結合 ・数量 <テーブル:T_商品> ・商品ID ・商品コード ・商品名 ・版 ・仕入原価 ・備考 など です。 宜しくお願致します。

  • ACCESSで在庫管理を実施したい「改善希望1」

    在庫の入出庫管理をアドバイスいただき完成しました「ありがとうございます」。しかし、使って「利用者含め」いくうちに改善要望の声があがり、対応できればと思っています。 当件は、私にとって内容が濃いこともあり「分かる質問として纏められない懸念」、作成時のWEBアドレスを掲載させていただく事、お許しください。 https://okwave.jp/qa/q9659826.html [改善したいこと] その1, 改善項目:F_入出庫管理「フォーム」に入力途中「どの段階に於いても」で取りや      めた時、入力済データがクリアーになる様にしたい。 現状内容:フォーム終了させ再度フォームを立ち上げても入力データが残る。 その2, 改善項目:Q_在庫計算「更新クエリ」の実行時に発生する2つのアラートを表示さ      せない。又は、2つ目に表示されるアラート「1件のレコードが更新さ      れます」のみ表示させたい。(F_入出庫管理「フォーム」の最後の入力      フィールド「出庫数」の更新後処理「Q_在庫計算」に実行マクロを設      定) 現状内容:2つのアラート「1つ目,(更新クエリを実行すると、テーブルのデー      タが更新されます。2つ目,1件のレコードが更新されます。」表示に      よる処理工数の減を望む声の存在。 [感想と思い] 実際にアドバイスを頂きながら完成しましたが「ありがとうございます」、使っていくうちに考えていなかった場面に遭遇しました。自分だけが使うならいいですが、そうでない時の声に対しては、真摯に向き合わないといけないと感じましたした「対処スキルも無いのに勝手な言い分・・・」。何事も経験の積み重ねと言いますが、まさに痛感いたしております。しかし、私にとってAccess新分野でもあり、現時点での気になる点の解消方法へのアドバイスを希望します。 [実施したこと(考えたこと)] 実施1,失敗 F_入出庫管理「フォーム」にコマンドボタンを配して、全てのフィールド「入出庫ID、訂正(チェックボックス)、商品コード、商品名、在庫数、日付、入庫数、出庫数、計算済(チェックボックス)、メモ(個別情報入力)」に対して「値の代入(Null)」マクロを登録しました。 実施2,失敗 F_入出庫管理「フォーム」にコマンドボタンを配して「コマンドの実行(元に戻す)」マクロの登録。 実施3,考えただけ(実行スキルなし) 書き込まれたテーブルのレコードを削除、入出庫ID行を削除し新たな行を追加して、入出庫ID(オートナンバー)を書き込むマクロの作成。 以上ですが、宜しくお願いいたします。

  • access2003初心者です。50商品の在庫管理をしています。

    access2003初心者です。50商品の在庫管理をしています。 作成したのは ・商品テーブル(商品コード、商品名) ・受注テーブル(日付、商品コード、個数) です。 受注テーブルには受注があった商品のデータしか入力していません。 しかしレポートでは、すべての商品を並べて 「受注がない商品については、数量を0」 としてレポートを作成したいと考えています。 レポートを作成するには、「元となるテーブルやクエリが必要になってくる」と本に書いてあったのですが、 この元となるクエリを作成することができません。 作成したいクエリは次のとおりです。   日付   商品 個数 2008/04/01 商品01 2 2008/04/01 商品02 0←このデータ(日付、商品、個数)は受注テーブルにはありません。以下同じ。 ・ ・ ・ ・ ・ ・ 2008/04/01 商品50 2 2008/04/02 商品01 1←ここから日付が翌日になります。 2008/04/02 商品02 1 ・ ・ ・ ・ ・ ・ 2008/04/02 商品50 0 2008/04/03 商品01 2←ここから日付が翌々日になります。 2008/04/03 商品02 2 ・ ・ ・ ・ ・ ・ データがないものに対して、 自動で日付を入力したり、個数を0にしたりしたいのですが、 どのような抽出条件またはSQLなどを書いたらいいのかわかりません。 よろしくお願いします。

  • FileMakerで在庫管理をしたい!

    FileMakerで在庫管理をしたい! 現在在庫管理をエクセルでやっていますが、 これからはファイルメーカーで管理したいと思いいろいろ試みています。 そこで、 商品テーブルと在庫テーブルと移動テーブルをつくりました。 ■商品テーブル 商品ID 商品名 ■在庫テーブル 在庫ID 商品ID 保管場所 棚卸在庫数 現在庫数(Calculation) 入庫日 ■移動テーブル 移動ID 在庫ID 移動数 移動先保管場所 移動日 商品テーブルと在庫テーブルは商品IDでリレーション 在庫テーブルと移動テーブルは在庫IDでリレーション 在庫の出し入れ移動が激しいので、移動入力を簡単にできたらと思います。 入庫入力は在庫テーブルに新規レコードで入力 出庫入力は移動先保管場所を"出庫"というふうにしてやろうかと考えています。 問題点 ・移動を入力する際に、保管場所と商品名で目的の在庫を絞り込みたいのですが、うまくポータルに表示されません。リレーションの組み方が間違ってる?? ・現存の在庫を他の保管場所に移動するとき、 移動先保管場所を入力すると自動的に在庫テーブルに新規レコードとして在庫が移動されるようにしたいがやりかたがわからない。 本をみても目的の情報にたどりつけないので、こちらの掲示板がたよりです。 助けてください!!

  • アクセスで在庫管理

    Access初心者ですが、在庫管理をアクセスでしたいと思います。Windowsでアクセス2003です。管理する商品の種類はそれほど沢山ないのですがサイズと色が沢山あります。商品マスターテーブルはこのようなテーブルです。サイズマスター、色マスターも 別途作りました。 商品ID 商品名 サイズ 色 ・・・・ 1   ABC   60A White 2 ABC 60A Black 3 ABC 70A WHite 4 ABC 70A Black ・ ・ このABCの商品以外にも他に7種類くらいの商品があり、それぞれに同じサイズ・色展開をしています。 ひとつのテーブルに全部まとめて7種類とも入れてしまえばよいのですが、他のサイズの在庫が増えた場合に追加しなくてはいけなく、一番下から追加して、テーブルを見たときにあまり綺麗ではありません。そこで商品マスターを7種類作って、新しいサイズ・色が加わった場合に各々の商品マスターに加えたいのです。この考え方は間違っていますか? さらに質問なのですが、レポートで出したい情報は「サイズ60Aは今いくつ在庫があるか?」です。7種類のテーブルからサイズ順に在庫がわかるようなレポートを出したいのですが、一つのテーブルからならやり方はわかるのですが、複数のテーブルからだとわかりません。 すみませんが、教えてください。自分でウェブ上のトレーニングなどを試みましたがギブアップです。宜しくお願い申し上げます。

  • Accessで累計計算する方法を教えてください。

    現在Access2000で、在庫管理をしています。 添付ファイルのように(1)~(3)のようなテーブルがあります。商品を発注するにあたり(3)現在庫の確認と(2)発注済み分の確認、(1)受注内容の確認などと効率の悪い状況です。 そこで各商品ごとに入出庫をみることができるレポートを出力できるようにしたいと思います。例えば、商品Bであれば(4)のようなレポートを出力したいと思います。 (1)と(2)のテーブルのフィールドをユニオンクエリーで結合させるところまでは何とかできたのですが、肝心な"在庫累計"をうまく計算できません。添付ファイルの(A)と(B) 色々調べると、Dsum関数があるようなのですで、このユニオンクエリーをもとに選択クエリーをつくりこの関数を使ってみたのですが(4)のレポートのようにはいきません。"期日"を条件にしたのですが同じ日だとすべて合計されてしまします。また、出力するレコードの順番は日付で昇順、同じ日付のレコードは入庫(プラスのレコード)を上位に、続いて出庫(マイナスのレコード)の順番にしたいです。 (4)のようなレポートが作成できれば方法は問わないです... なにかいい方法をアドバイスをいただけますでしょうか。 宜しくお願いいたします。

  • 在庫管理について質問よろしくお願いします。

    個人事業主としてアマゾンで商品を販売しているのですが在庫表を自分で作成して管理しております。 その際、仕入れの送料が仕入れ個数で割り切れない場合どうすればいいでしょうか? 例えば、同じ商品を10個仕入れた場合、自分の作成した在庫表では1つの欄で管理します。仮に送料が1001円だった場合1商品あたりの送料単価は100円と1円余になります。商品一つ一つを在庫表に記入して管理している場合はどれか1つの商品に端数を足した送料にしておけばいいですが、自分の管理表の場合はそれができません。 その場合、備考欄でも作って、「送料1円あまり」など記入して管理するしか方法がないでしょうか? 上記以外の管理の仕方で他に良い管理方法はありますか?

  • アクセスでの在庫管理(在庫期間が知りたい)

    アクセスを使って商品の在庫管理を行おうと試行錯誤しています。 1.入庫テーブル(商品名、入庫日、入庫数)に入力。 2.出庫テーブル(商品名、出庫日、出庫数)に入力。  これらから、商品と入庫日をロット単位とし、このように在庫を計算しています。  入庫の合計―出庫の合計=在庫 ここからネックになっているのが、在庫期間をどうあらわすかと言う点です。  通常、今日までの在庫期間は   在庫期間=今日―入庫日  によって表しています。  ここまでは出来ていますが、さらに一歩進めて  日にちを毎回指定し   指定日からの在庫期間=指定日―入庫日  のような感じで在庫期間を表示させたいのですが どのようにクエリを作ったらよいのでしょうか? このようなフローで良いのか、 参考HP等ありましたらアドバイス頂けませんか?

  • Accessで在庫管理を

    在庫管理システムを作ってみたいのですが、仕入れた物を在庫に足して、販売したものを在庫からひく。こんな感じです。 テーブルとしては、商品テーブルと仕入先テーブル以外に、在庫テーブルも作らないといけないですか? っていうかあまり仕組みがわかってないので、なにかアドバイスがあれば宜しくお願いします。

  • データベースで在庫管理したい。

    データーベースの質問です。 現在アクセス2000を使って、商品の簡単な在庫表を作りたいと思っています。 最終的な表示形式では、商品種類・商品名・在庫数・単価・合計金額・在庫場所 を表示できるように作成したいと考えているのです、アクセスから離れてかなり時間がたっているため、かなり序盤からつまずいております(笑) 現時点では「商品種類テーブル」「商品名テーブル」「在庫場所テーブル」を作っておりまして、今クエリの場所に「在庫*数量」を表示させたいのですが、どうやって作れば良いのかわかりません。 また、全体的な考え方もこれでいいものかどうか・・・。 どなたかアクセスで在庫管理なんかをしている方がいらっしゃいましたら、ノウハウを教えていただけると光栄です。 宜しくお願いします。

専門家に質問してみよう