素人が実用レベルで運用していく為の覚書です。[MS_Access覚書]え~この覚書を更新するまもなく・・・・(__;)全てやり変えました。更新するよりも実働させることを優先させましたのでだいぶ放置する事となってしまいました。変更と言うよりは、一から新しく作っちゃいました。私が甘かった・・・のか?友人の要求がかなり高かったのか?(思っていた以上に本格的と言うか・・・)私は普通に無料で作るレベルで考えていたので、ごく簡単にエクセルよりも使いやすく在庫管理ができて、値札をシールで出力して入力もバーコードで簡単にできればOKくらいに思っていたのです。リンクさせて顧客情報(買い上げ合計や何時何を買ったか、又は売りに来たか・・、電話アプローチや出したDM内容、日にちその他)販売実績もスッタフ別集計ランキングから、個人別粗利率、イベント別集計やらなんやからと・・・・・と言うわけで、※※万ほど頂いておきました。☆ヽ(▽⌒*)お金が発生するからにはがっちりやらにゃーいけねーさ。事で一気に作っちゃったわけです。そこで、この覚書なんですが・・・今回のデータベースではかなり複雑すぎるので・・・(テーブル20以上あるし・・フォームもいっぱい。レポートなんて50以上・・・(@_@;)・・)前に作ろうとしていた簡単なやつをこれから作りながら載せていこうと思っています。あ・・・途中変な変更はいりましたが、続けたいと思います。(あくまで素人的簡単作成です。)のんびり更新したいと思っています。「おいおい聞いてないよそんなこと・・・・」って事がどんどん出てきます。商品登録と入荷登録を作って入力を進めてもらってました。(試験的になんですが・・)今までの在庫表を見ると入荷の際に商品詳細に記入してあったことが、いくつかあります。色だったり、バリエーションみたいな事です。入力を進めたのは今までと同じように、色やバリエーションを入荷詳細に記入しながら進めてもらいましたが、友人の一言「色やバリエーションごとの数ってわかるようにできるかな?」って詳細に記入した内容を判断してって事か・・・(・・;)無理だぁ~こんな感じですかね^^;自分のデータベースを作る時にはいろいろ考えながら作って行きますが、他の場合こういうことがよく有ります。今までは、棚卸の時や発注時に色バリエーションは確認していたようですがせっかくデータベースを作るなら簡単に分かるといいなって事なんですが・・・・ではどうやったら、それが可能かって事を考えてみたいと思います。やり方は2通り考えられます。1商品登録時に色バリエーションを分けてしまう2入荷時に色バリエーションを分けて入荷入力をするです・・・。1の場合色バリエーションで商品番号を分けてしまうのでテーブルの変更はしなくても大丈夫。2の場合色バリエーションを分けて入荷をしますが、色バリエーションが判別つくようなフィールドが必要です。色バリエーションを入荷時登録しても統一性が無いと集計できませんので、別フィールドを設け色、バリエーションを登録します。いうことは入荷テーブルを変更しなければいけません。共に売上げ、返品テーブルも変更しますこれは、商品番号で商品管理と思っていましたが、最終的には入荷IDで全て管理していくためです。入荷IDで商品管理することで商品の詳細まである程度管理できます。今回バーコードを出力しますが、このバーコードを入荷IDで行います。することで何時入った商品の何色バリエーションが、残っているか、売れているのかまで集計できます。これは、1でも2でもできます。(かなり面倒な事になってきますが・・・・)結果は、1でいきますが管理は入荷IDで行うこととしました。̄;)!!実際レポート等も作っていたのでやり直しです・・・・。[MS_Access覚書]昨日商品登録フォームのヘッダーに仕入先と商品区分のコンボボックスを作りました。そのコンボボックスの値を商品入力時にコントロールを移動したときにコンボボックスの値をそのまま代入してしまいます。登録する商品も同じ区分のものを入力していきますので、いちいち仕入先、商品区分を入力するよりも楽に入力を進められると言う事で同じ仕入先、商品区分の場合ヘッダーで選択した値を代入させていきます。値の代入には簡単なマクロを設定します。選択右クリックでプロパティを開きます。イベントタブのフォーカス取得時を選択し・・・からマクロビルダを開きます。ここはコンボボックスで何をするかを選びます。ここはアクションを反映させるフィールドを指定します。今回の場合値を代入させるフィールドです。設定にはアイテムを選択し右の・・・から選びます。次のように入力されます。ここにはアクション値の代入の代入させる式を入れます。言っても今回の場合フォームヘッダの区分IDを代入しますのでアクションと同じように・・・で式ビルダを立ち上げ私の場合ヘッダのコンボボックス名が[テキスト14]となってますので、=[Forms]![商品_M]![テキスト14]となります。頭に必ず=がつきます。式ですから・・・・これで入力を進める時、商品IDを入力しエンターキーでフォーカスが移動した瞬間にヘッダー上のコンボボックスの値が区分IDに代入されます。同じように、仕入先IDも設定すれば終わりです。これで、商品入力フォームで入力できるようになりました。商品フォームは、はじめに入力をしてしまえばそう頻繁に入力することは無いと思いますが、とりあえず今ある台帳を続けて入力していくのに便利なように作ってみました。後々変更して商品検索用のフォームとしても使えるようにも考えてます。次は商品入荷登録フォームの作成をします。あ・・・・テーブルの変更が有りましたので、作り変えてあります。.^)y-~~~当たり前です。[MS_Access覚書]だいぶ放置してしまいました。_)m一応本職が忙しかったのと、作ったデータベースの変更等をしてました。素人ですから~(-Q-)商品登録フォームを作る前にテーブル仕様の変更があります。商品_Mの商品IDをオートナンバー型から数値型に変更いたしました。理由・・今までの番号と同じにしたい・・・・・との事です。商品登録時に今までの商品番号を入力しながら進めることになります。後々入荷入力時に商品番号を探しやすいとの事です・・・・。次へでフォームレイアウトで表形式を選択します。そのまま完了するとこんな感じにできてきます。これを、仕入先のときと同じようにデザインで変更していきます。一応こんな感じにしてみました。フォームヘッダーにテキストボックスを4つ追加しています。]をクリックしてフォームヘッダー上でクリックすればできます。(ツールボックス上の真ん中です仕入れ先のツールボックス画像だと・・・)なんに使うかですが、商品登録時に一々仕入先や商品区分を入力しなくて良いようにはじめに選択しておくために作りました。テキストボックスを作ったら、仕入先IDと商品区分IDの表示を選択できるようにコンボボックスに変更します。(テキストボックスの上で右クリック→コントロール種類の変更→コンボボックスを選択)次にプロパティのデータタブの設定をします。コントロールソースは空白のままです。変更するのは値集合タイプを「テーブル/クエリ」に、その下の値集合ソースは入力欄の右に出てくる・・・をクリックしてクエリビルダからテーブル仕入先_Mを選択しフィールドにIDと会社名を選び閉じます。これでコンビボックスで仕入先をIDで選べるようにしました。次に一応選択された仕入先名を表示する為にもう一つのテキストボックスを設定します。ここではDLookUpと言う関数を使います。設定するのは表示させたいコントロールボックスのコントロールソースです。プロパティのコントロールソースをワンクリック右側に・・・が出ますのでクリックし式ビルダを立ち上げます。ここの[テキスト20]は先ほど作った仕入先選択用のコンボボックスです(名前が違うと思いますので確認してください)これで、コンボボックスで選んだ仕入先名を表示できます。同じように商品区分も作っておきます。できたのがこんな感じです。値代入は次回書きます。・・・・DLookUp関数はとても便利な関数です。フォームで、レポートでいろいろな場面で使えますので、覚えて損は無い関数です。[MS_Access覚書]アクセスで入力用フォームやメインのシステムメニュー(操作用のスイッチボード)をフォームオブジェクトで作っていきます。はじめにメインメニューを作りたくなってしまうところですが、簡単な入力用のフォームから作ります。アクセスの機能の中にウィザードでフォームを作ると言うのがあります。ちなみに仕入先_Mからウイザードで単純に制作するとこんな感じになります。味も素っ気も無い・・・・と言うか、このままではちょっと・・・・なので次のように変えてみようと思うます。^^;作り方は、簡単です。・・・・まずウイザードで作ったフォームをデザインビューに切り替えます。(メニュー表示から切り替え)すると、1フォームヘッダー2詳細3フォームフッターと3つに分かれてます。2の詳細で一つ一つのボックスを移動、サイズ変更できますので好みの配置に並べ替えます。次にフォームの左上スケールの縦、横ありますがそこの四角い角の部分を右クリックして、プロパティを開きます。次に詳細バーをクリックします。プロパティ-の書式に背景色がありますので、ワンクリックで右に・・・が出てきます。その・・・をクリックで色の設定が出てきます。私は城を選択→OKで背景色を変えられます。次に詳細と書いてあるバー下に下げるとフォームヘッダーが出てきます。同じように背景色を変えちゃいます。私はフォームヘッダーにレコードの移動と保存用のボタンを配置します。表示→ツールボックスを表示します。画像で言うと右列の上から3つ目コマンドボタンをクリックしてヘッダー内の配置したいところでクリック!するとコマンドボタンウイザードが出てきます。「種類」をレコードの移動、「ボタンの動作」を先頭のレコードへ移動でしたのボタンで次へ移るとボタンのデザインを選べます。私はここで完了にします。同じように前のレコードや次のレコードのボタンを作りヘッダーに配置していきます。移動が配置できたら、同じように「種類」レコードの操作「動作」レコードの保存ボタンを作ります。仕入先入力フォームができました。プロパティでいろいろな設定ができます。左上の四角を選択するとフォーム全体のプロパティ詳細バー、ヘッターバーを選択すればそれぞれの設定が可能です。試してみていじりまくります・・・でフォームを閉じるとき保存さえしなければ開く前の状態に戻りますから、どんどん試してみたらいいです。ちなみに私の設定はこんな感じになってます。試してもデジタルは元に戻りますからいじり倒して見るといいです。後からボタンを追加したりもできます。運送用の伝票を出力させるボタンをつけたり・・全体が出来上がって行くにしたがって操作ボタンも増やしていきます。簡単なフォームはこんな感じです。同じように商品区分も作っちゃいましょう(^O^)次は商品マスターのフォームを作ります。商品マスターには仕入れ単価フィールドは無し、入荷テーブルに仕入単価入力を行います。※商品マスターに販売価格を設定しておき、商品札を出力の時に入荷値段が違っても同一価格で値札出力を行います。返品処理では1テーブルに一点づつ、一々返品個数を入力せず続けてバーコードを読み込む事になります。売上げ時も個数を入力せずコードを読み取って行くだけ・・・とするとテーブルは別々のほうが処理しやすいはずです。げを同テーブルで管理すると入荷数を入力したテーブルの返品、売上個数は無駄になりますし、返品数が15あればテーブルは15必要になります。入荷数や売上個数は空欄になります無駄なフィールドが多くならないように別々にしてあります。※値札出力テーブルはファイル出力の為だけのテーブルです。バーコード出力は入荷個数分の値札が必要です。入荷個数分の値札を出力するのに個数分のテーブルを自動で作ってしまおう!という事です。素人的簡単な考え方ですが・・・(テーブル追加クエリーを使います。)なので、商品番号等は重複できるようにインデックスは「重複あり」に設定してます。!テーブルを作らなくてもユニオンクエリでも対応できると思いますが、今回はテーブルで対応します。※簡単なクエリと関数、マクロのみで作ります。[MS_Access覚書]ちょっと、夏休み久しぶりに外房へ行っておりました。在庫管理のデータベースはほとんどできたのですが、あ!今回訳あってアクセス2000を使ってます。(^^;訳は内緒です・・・・(友人がケチって中古ソフト買ったなんていえません・・)予定してた委託品はちょっと面倒なことになっております。仕入先って言うか委託者は顧客からとの事で、販売管理から連動で委託先を取り込むことになりました。;)まず、テーブルのフィールド設定です。(テキスト型)※IDはオートではなく入力します。面倒であればオートでもいいのですが・・一桁10番台20番台と分けたいとの要望で現台帳番号の通りに入力できます。(日付/時刻型)※6と7は仮となってますがテーブルを作りました。6売上_Tは販売のほうができたら同じフィールド名でリンクを張り取り込みます。7はユニオンクエリも考えてます。※テーブルを作るときフィールドのデータ型を設定します。住所の入力支援は便利です。次は入力フォームです。あぁ~画像張ったらどうなるのかためしで、仕入先_Tの画像です。[MS_Access覚書]アクセスを立ち上げテーブルの作成を行います。2つのデータベースの内在庫管理からつくっていきます。^^;いっぱいありますよね・・・作り方は・・・でも・・私がアクセスで一番苦労したのが作り方では無く、考え方なんです。今回の在庫管理では在庫数の管理と商品値札の出力ができるようにします。商品管理では、まず幾つのテーブルが必要でしょう・・から始まって、そのテーブルに必要なフィールドは何か・・・・・・ですよもちろん作りなれた人なら難しくは無いのでしょうが、何度もテーブルを作り直しそのつど頭を抱えながらやってきました。今回のテーブルは以下のように作ります。☆商品管理のテーブル★☆1、仕入先テーブル2、商品区分テーブル3、商品マスタテーブル4、入荷数テーブル5、返品数テーブル6、販売数テーブル(仮)7、値札出力テーブル(仮)8、委託品テーブル(仮)暫定的では有りますが、この8つで行こうと思っています。作る人によっては入出荷数を1つにしたり委託品も商品マスタで一緒に管理するのもありだと思います。説明するほどのことは無いですね。2、商品区分は、大まかな分類コード。本なら「漫画」「雑誌」とかです。区分は増える可能性があるのでテーブルで管理します。後々販売管理からリンクテーブルで販売数を引っ張ってくるつもりでいますのでわざと別テーブルにしました。今回の依頼に「バーコードを使って値札を出力する」と言うのが有ります。バーコードの読み取りだけで返品や出荷(支店間)売上げ等の管理をしたいと言うことがあるので、7、出力用のテーブルをつくっておきました。後々でSQLクエリ等に変えるかもしれません。(SQLクエリって便利です。)8、委託品テーブル、これも暫定的に商品マスタと別に管理したほうが良いかな?数量が少なければ商品マスタでも構わないかなとも思っています。商品種類200点前後、商品数800点くらいです。販売数以外にも出入りが激しいと思われます。[MS_Access覚書]まずデータベースに何を望むのか?これがはっきりしないと作りようがないので、今回作ろうとしている内容を簡単にまとめてみました。残す(何時何を買ったか顧客ごとの履歴を表示)・・DMやメールを購入金額や購入商品別に出したい(DMは封筒や葉書にダイレクトプリント希望)・・誕生日一覧の出力がほしい・・(月日だけで・・・DM出しもできるように)以上が大まかな依頼内容です。あ!浮き商品とは、委託販売商品です。仕入れてきた物ではないので別に区別して管理したいとの事。大雑把ですが、3つのシステムがほしいみたいですが、ここで3つも必要ないので、販売管理と顧客管理は1つにまとめて、在庫管理と販売管理の2つで行こうと思います。依頼者的には、経理関係まで考えているようでしたが、それは別にしたほうが良いと思います。税金等に関連してくることと、会計事務所を入れることで必要ないと思うからです。この要望に、必要な書面、仕入先からの納品書や在庫の管理方法(エクセルで作っていた台帳)売上げ伝票、などを元にまずはテーブルの作成から初めます。覚書を作ろうと思ったのは、友人(独立して一応社長ですよ^^;)から在庫管理や販売管理をパソコンで作りたいと相談を受けました。́#)立ち上げ間もない会社??にそんな余裕もないので、僕が自分のお店や他のシステムをどうやって作ったのかと聞いてきました。僕は「MS_Access」で本を見て作った。自分で使うだけなら何とか作れるからやって見ればと薦めたのですが・・ソフトは買った。テンプレとかインターネットで探したが、自分の思っている内容の物がないから作ってくれって事になっちゃいました。このブログは、僕も素人で10数年前に初めて触れた「アクセス」なるデータベースソフト比較的安価で、十分な性能を持っています。このすばらしいソフトMS_Accessを素人レベルで使いこなすための試行錯誤の記録です。ソネットポイントこの広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。この広告は180日新規投稿のないブログに表示されます。