• 締切済み

【Access】区分別の採番方法の続き

山田 太郎(@f_a_007)の回答

回答No.2

【補足】Step1~4をソフトハウスに依頼すると・・・  45万円±15万円の費用を請求されると思いますよ。なぜなら、それが完成したらシステムは完成したも同然。ですから、世の中にはSEという職業があるんです。なかんずく、SEが活躍するのはStep1です。それに関しては、OKWaveの出る幕ではありません。OKWaveは、「課題1のここで行き詰ったが、突破する妙手はあるのか?」という具体的な手の問題の答えを提供するのが関の山ですよ。 【アドバイス:急がば回れ】 ・Access のヘルプ文(厚さ数センチ)を読んでテスト。 ・それに費やした時間は、一日に12時間。  UNIXでC/Sシステムを構築した経験があるので、テーブル設計とSQL言語は習得済み。C言語とVisual Basic6.0での開発経験もあるので、VBAについては問題なし。でも、それだけじゃー、Accessの商用アプリケーションは書けませんでした。  その目途がついたのは、8か月後。家でも、夜8時から12時までAccess のヘルプ文と睨めっこ。で、ようやく、添付図のようなメニューシステムと汎用問い合わせフォームが完成。これで、メニューから各フォームを開くことが可能に。また、AcessのSQL文を自在に使いこなす術を獲得。また、ユーザーにファンクションキーを押させて、前値入力を保証する目途も尽きました。また、レポートを印刷する手順も知ることが出来ました。  以上は、あくまでも事前準備ですよ。自分が、一つのアプリケーションを開発する技量を持っているかどうかのテストです。このテストをクリアしても、まだ、アプリケーション開発に着手してはダメです。  次は、先に提示した主フォームとサブフォームの4課題の解決手法の模索。それが、済んだら、月次処理と年次処理と行う手法の確立。これは、ADOプログラミングを制覇することなしには不可能です。ここまでの全てが、事前準備ですよ。  で、そういう苦闘の果てに《己のプログラム作法を確立》してから、10ヶ月後にやっとこさStep1⇒Step2⇒Step3⇒Step4⇒Step5の実作業に突入すべきです。Access で開発するってそういうことです。だが、質問者のやり方は、私とは全く違う。いきなり、Step5に踏み込んでいます。その行く先は、頓挫あるのみですよ。 >急がば回れ! と、アドバイスして回答とします。

tama8356
質問者

お礼

ありがとうございます。 出直します。

関連するQ&A

  • 【Access】区分別の採番方法

    A、B、C区分別の採番方法について なるべくシンプルな方法で出来る方法がありましたらお教えください。 何度かACCESSも作成していますが、初心者に近いので、簡単な方法だと ありがたいです。 今業務管理テーブルと区分マスタテーブルと二つのテーブルがあります。 業務管理テーブルには 【業務管理番号】【A受注番号】【B受注番号】【C受注番号】【区分】【機器名】 【001】【19000】【-】【-】【A】【SIMULATOR】 【002】【-】【-】【19000】【C】【GENERATOR】 【003】【-】【-】【19001】【C】【SIMULATOR】 【004】【19001】【-】【-】【A】【SIMULATOR】 【005】【-】【19000】【-】【B】【AMPLIFIER】 【006】【-】【19001】【-】【B】【AMPLIFIER】 区分テーブルには 【区分コード】【区分名称】 【A】【簡易点検】 【B】【精密点検】 【C】【修理】 業務管理番号は1業務ごと連番で番号を採っています。 A/B/C受注番号は各区分ごとに番号を採ります。 区分はA/B/Cのどれかです。 機器名は点検・修理の対象となる機器名が入ります。 上段の業務管理テーブルを元に入力フォームを作成し、そのフォームから区分Aを入力して登録した時に業務管理テーブルのA受注番号に1が足されるようにしたいです。区分は一つのみしか選択しません。 よろしくお願い致します。

  • アクセス 項目ごとに自動採番

    講座名ごとに受付番号を自動採番したいのですが、出来るのでしょうか? テーブル名 セミナー受付(講座名、受付番号・・・) 講座名     受付番号 セミナーA   1001、1002、1003のように連番 セミナーB   2001、2002、2003のように連番 他のサイトを見ても解決できなかったので、ご指導をお願いします。

  • access 請求番号の自動採番

    まったくわかりません! よろしくお願いします。 仕様環境 WinXP  access2002 顧客管理のシステムを作っています。 テーブル 顧客テーブル(主キーは顧客番号 テキスト型) 請求テーブル(主キーは請求番号 テキスト型) 明細テーブル(主キーは明細番号でオートナンバー ダミーみたいな感じで使っています。) そしてリレーションシップで顧客テーブル(1)→(多)請求テーブル(1)→(多)明細テーブルになっています。 顧客情報を入力するフォームを作りました。 主キーは顧客番号(テキスト型,入力モードON,インデックス いいえ)で 他のテキストボックス(例えば名前)に何かしら文字を入力すると自動で顧客番号を採番してくれます。 例:0001 0002 0003~ そしてそのフォームから請求書作成フォームに飛ぶように 「請求書作成ボタン」を作り、顧客情報も一緒にひっぱっていってくれる 請求書作成フォームを作りました。(入力したばかりの情報も最新の情報で更新してくれます。) ・・請求書作成フォームはサブフォームを使い3つのテーブルからなっています。・・ 親フォーム:顧客テーブルから。 子フォーム:請求テーブルから。 孫フォーム:明細テーブルから。 主キーは請求番号で(テキスト型,入力モードON,インデックス はい(重複なし)) 他のテキストボックス(例えば請求日)に何かしら入力すると自動で請求番号を採番してくれます。 例:A0001 そこで問題なのですが、顧客情報は入力する度、次々自動で採番してくれるんですが、 請求番号は一番最初のレコードの”A0001”だけ採番してくれて、 新しいレコードで請求書を作ろうとテキストボックスに文字を入力すると「型が一致しません」というエラーが出ます。 ○ エラー内容 アクションエラーの実行 条件 true アクション名 値の代入 引数 [請求番号],Format(DMax("請求番号","請求マスタ")+1,"A0001") マクロは・・(参考書を参考にしています、マクロ名:自動採番マクロ) ------------------------------------------------- 条件 : DCount("請求番号","請求テーブル")=0 アクション : 値の代入 アイテム  : [請求番号] 式     :"A0001" ------------------------------------------------- 条件    : ... アクション : マクロの中止 ------------------------------------------------- アクション : 値の代入 アイテム  : [請求番号] 式     : Format(DMax("請求番号","請求テーブル")+1,"A0001") ------------------------------------------------- となっています。 念のため、主キーの入力モードを切り替えたり、式の"A0001"を単純に"1"にしたりしましたが、 請求番号はエラーが発生します。 原因がまったくわかりません。 よろしくお願いします!

  • Accessで日付が変わると番号がリセットされる自動採番がしたい

    Microsoft Accessで下記のようなデータベースを作っています。 テーブル名:TB_受付 テーブルデザイン 受付番号:テキスト型 受付日:日付/時刻型(yyyy/mm/dd) 番号:数値型 コース種類:テキスト型 備考:テキスト型 テーブルイメージ 受付番号    受付日    番号  コース種類  備考 ------------------------------------------------------------ 20051201受付1   2005/12/01   1 20051201受付2   2005/12/01    2 20051201受付3   2005/12/01    3 ・     ・ ・                   ・ 20051202受付1    2005/12/02 というように、受付日が変わると番号が1に戻るような採番をしたいのです。 上記テーブルを元に作成したフォームで、 受付日にはDate関数でその日の日付が入るようにしています。 フォームの更新前処理に下記のコードをいれています。 Private Sub Form_BeforeInsert(Cancel As Integer) If DCount("番号", "TB_受付") = 0 Then Me![番号] = "1" Else Me![番号] = Format(DMax("番号", "TB_受付") + 1) End If End Sub さらにコース種類の更新後処理に Me![受付番号]=Format("受付日,"TB_受付")&"受付"&Format("番号","TB_受付") というコードを書いて日付&番号が、[受付番号]のところに表示されるようにいろいろやっているのですが、日付が変わると番号をリセットさせることがなかなかできません。 VBAはあまり理解できている方ではないのですが、いろいろ検索をしたり調べたりしてたどり着いたのが上記です。 日付でリセットされる採番をするにはあと何をすればよいか、もしくは根本からこうしたほうがいいというのがあれば、とも思うのですが 詳しい方に教えていただけないでしょうか?

  • MS Access 入力フォーム:自動採番

    Access2013での自動採番に関して2パターン教えて下さい。 質問(1):"顧客番号"の自動採番 【テーブル名】 顧客情報 【フィールド】 "顧客番号"、"顧客名"、"顧客名かな"、"顧客住所"、"電話番号"、"担当者"、"メール"・・・ <"顧客番号"の採番方法> 顧客名の頭文字を五十音順の「あかさたな」で行ごとに連番をつけて管理している。 例)) 「ABC商事」→エービーシーしょうじ→「あ‐01」 「東京印刷」→とうきょういんさつ→「た-01」 《やりたい事!》 入力フォームに新規で、「東西工業」を入力する際に "顧客名かな"を入力したら、"顧客番号"が自動的に採番されるようにしたい。 顧客名:東西工業 顧客名かな:とうざいこうぎょう 顧客番号:た-02 ←ココを自動採番にしたい ------------------------------------------------ 質問(2)"取引番号"の自動採番 【テーブル名】 取引情報 【フィールド】 "顧客番号"、"取引番号"、"顧客名"、"顧客名かな"、"住所"、"電話番号"、"担当者"、"メール"・・・ <"取引番号"の採番方法> 取引が発生した順で、"顧客番号"ごとに枝番をつけて管理している。 例)) 「ABC商事」→1/10の取引→"顧客番号":あ‐01、"取引番号":01 「ABC商事」→1/31の取引→"顧客番号":あ‐01、"取引番号":02 《やりたい事!》 入力フォームに新規で、「ABC商事」の2/15の取引情報を入力する際に "顧客番号"を入力したら、"取引番号"が自動的に採番されるようにしたい。 顧客名:ABC商事 顧客番号:あ‐01 取引日:2016/02/15 取引番号:03 ←ココを自動採番にしたい 説明がうまくできず、分かりにくいかとは思いますが 何とかお知恵をお借り出来れば助かります。 よろしくお願い致しますm(__)m

  • エクセルでの採番と保存方法について

    エクセルの1つのファイルに シート1~3には同じフォーマットの報告書が入っています。1はAさん用2はBさん用3はCさん用です。各自このファイルにアクセスして報告書を好きな時に作成します。 シート4にはこの報告書の管理台帳が有ります。台帳にはNO1~3が入っていて報告書の題名と報告書の作成者を入力する欄が有ります。 質問は 各自が報告書を入力し終えた時点でシート4の台帳に作られた番号NO1~3が自動採番され、報告書の所定のセルに自動でコピーされなおかつシート4の台帳には番号の後に報告書の題名と作成者氏名とが自動で入力される方法はどうやったらよいかという事です。 わかりづらい質問かもしれませんが 宜しくお願い致します。

  • access 自動採番 「10-AA-0001」にするには。

    宜しくお願いします。 仕様環境:access(2002-2007) 自動で番号を割り振る機能を作っています。 (以前に似た質問をしたのですが、前より理解度が上がったので、ご了承くださいm(__)m) ・・・ まずテストDBなので、テーブルは「案件」一つだけです。 フォームも簡易的な単票形式で簡単なものです。 番号は他のテキストボックスに何か挿入する前の 「挿入前」のイベントを遣っています。 そこで、ご相談です、 まず自動採番で「AA-0001」というものが作れました。 また別フォームに移動し、他のテキストボックスを入力しようとすると 「AA-0002」になりました、以降も~0003、~0004となり成功しました。 そこで更に付け加えたいと思っています。 それは、 「2010-AA-0001」にしたいと思っています。 ご覧の通り、「2010」は「年」です。 更には完成系として「10-AA-0001」と言う風に「年」にあたる、2010の「10」だけ、 抜き出したいと思っており、来年には自動的に2011の「11」にしたいと思っております。 date関数なのかなー、とは何となく思っているのですが、いろいろ工夫してみたのですが、 うまくいきません。 これはマクロでは無理でしょうか? フォームをVBAに変換したものとマクロを記載させて頂きます。 よろしくお願いします。 '------------------------------------------------------------ ' Form_BeforeInsert ' '------------------------------------------------------------ Private Sub Form_BeforeInsert(Cancel As Integer) On Error GoTo Form_BeforeInsert_Err If (DCount("見積り番号", "案件") = 0) Then 見積り番号 = "AA-0001" Exit Sub End If 見積り番号 = Format(DMax("Right(見積り番号,4)", "案件") + 1, "AA-" & "0000") Form_BeforeInsert_Exit: Exit Sub Form_BeforeInsert_Err: MsgBox Error$ Resume Form_BeforeInsert_Exit End Sub ・・・・ マクロの場合     条件                     アクション ---------------------------------------------------------- 1行目 DCount("見積り番号","案件")=0   値の代入    アイテム: [見積り番号]    式:    "AA-0001" ---------------------------------------------------------- 2行目 ...                      マクロの中止 ---------------------------------------------------------- 3行目                       値の代入    アイテム: [見積り番号]     式:    Format(DMax("Right(見積り番号,4)","案件")+1,"AA-" & "0000") ---------------------------------------------------------- ・・・・    こんな感じです、 (単体のテーブルを作り、他のテーブルと組み合わせるつもりです) また余談ですが、DMAX関数とDBMAX関数の違いがわかりません、 調べても(google)出てきません、これは何か違いがあるのでしょうか? 教えてください、宜しくお願いします。

  • 【Access】区分別の採番方法続き

    Accessでの事ですが、 以下のURLのベストアンサーのコマンドはフォームプロパティの 閉じるときに実行の所であっていますでしょうか。 https://okwave.jp/qa/q9592245.html よろしくお願い致します。

  • MySQL + PHP での自動採番

    PHP + MySQL で自動採番 複数テーブルから文字列を抽出して番号を振りたいと思っております。 具体的には以下のような形を考えているのですが、どのように記述をしてよいのか教えていただけますでしょうか? table1: +-------------+------+------+-- | ID | col1 | col2 | +-------------+------+------+-- | KW0807-0001 | A | 3323 | | KX0807-0002 | B | 1122 | | KY0807-0003 | C | 4441 | | KW0807-0004 | A | 1256 | +-------------+------+------+-- table2: +-----+------+------+-- | ID | col3 | col4 | +-----+------+------+-- | 1 | A | W | | 2 | B | X | | 3 | C | Y | | 4 | D | Z | +-----+------+------+-- table1 の「ID」 -> [K(規定値)] + [col1で入力した値よりcol4を抽出] + 入力した年 (08) + 入力した月 (07) + 0000から始まる4桁の連番 と、したく思います。 ご回答にあたって足りない情報があればご指摘下さい。 よろしくお願い致します。

    • 締切済み
    • PHP
  • アクセスについて教えてください。

    アクセス2002 XP使用 Aテーブル ID 氏名 電話番号 住所  などの個人情報入力 Bテーブル ID (リレーションするためのID主キー) 管理ID 購入商品 上記のように今作っているのですが、AテーブルIDとBテーブルは1対多でのリレーションしてます。 フォームで帳票形式で見たとき、 管理NOの数だけレコード表示されるのはいいのですが、 AテーブルID 1に対し、管理IDが111と三件分あるとして、(勿論BテーブルIDには123となってます) AテーブルID1にひとつ、受付NOを追加して、   ID  受付NO  管理ID   1   1    1   1   2    1   1   3    1   2   1    2   2   2    2   3   1    3 見たいに受付NOがIDごとに123。。。と自動入力されル洋にしたいのですがどのようにすればできますか?素人なので説明もうまくできなくわけが変わらないかもしれませんがおしえてください。よろしくお願いします。