Accessのオプショングループで顧客ごとに連番の受付コードを設定する方法

このQ&Aのポイント
  • Access2000を使用している場合、オプショングループを使用して顧客ごとに連番の受付コードを設定する方法について教えてください。
  • 顧客を選択した後、注文を登録するフォームを開きますが、受付コードに顧客ごとに連番を付与したいと考えています。
  • マクロで処理分岐を行い、顧客が変わる度にコードの頭のアルファベットを変更し、連番を1から付与したいです。どのようにすると良いでしょうか?
回答を見る
  • ベストアンサー

Accessのオプショングループ

Access2000を使っています。 オプショングループで顧客5社を選択するチェックボックスを設定しました。 顧客を選択した後、注文を登録するフォームを開きます。 開いたフォームの受付コードに顧客毎に連番で付与したいと考えています。(フォームの受付コード内に値を代入したいと考えています。)            例gooサンからの3回目の注文の受付コードは→   「g0003」のようにです。 顧客が変わればコードの頭のアルファベットを変更しまた1から付与したいと考えています。 出来ればマクロで処理分岐を行いたいのですが何かよい方法はありませんでしょうか? 教えてください。お願いします。

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

  • ベストアンサー
  • BigBen3
  • ベストアンサー率33% (5/15)
回答No.1

いろいろ方法はあると思いますが、こんなのはいかがでしょうか? まずは顧客テーブルを作ります。 [tblCustomer] <フィールド名>  <説明>    <データー型> customerId        ID         数値型 customerName      名前        文字列 customerAlphabet      アルファベット   文字列 customerSequenceNo   連番        数値型 で、注文を登録するフォームにあるオプショングループのAfter_Updateのイベントにコードで処理をします。 オプショングループを fraCustomer 受付コードのテキストボックスを txtOrder と名づけてください。 で、fraCustomerの更新後のイベントプロシージャーに Private Sub fraCustomer0_AfterUpdate() Dim intCustomer As String ‘顧客コード Dim intSequenceNo As Integer ‘連番 Dim strAlphabet As String ‘アルファベット ‘受付コードの頭文字を顧客テーブルより取得します。 strAlphabet = DLookup("CustomerAlphabet", "tblCustomer", "CustomerId =" & me.fraCustomer) ‘受付コードの連番を顧客テーブルより取得します。 intSequenceNo = DLookup("CustomerSequenceNo", "tblCustomer", "CustomerId =" & me.fraCustomer) ‘テキストボックスに受付コードを代入します。 Me.txtOrderNo = strAlphabet & Format(intSequenceNo, "0000") End Sub とりあえず、こんな感じでどうでしょうか? この処理は連番の取得からテキストボックスへの受付コードを書き入れる処理です。更新を自動的にする処理は入っていません。 私はDAOのレコードセットを使うのが好きなのですが、shin1966さんがどれほど精通しているかによって分かりにくいかもしれないのでとりあえず、ここまでにしておきました。 もし、更新の処理も必要な場合は返答下さい。レコードセットを使えば簡単にできますが、あまり得意でない場合は回り道ですが簡単な方法もあると思います。 私は独学のため、本文中の単語は間違っているかもしれませんのでご了承を。

shin1966
質問者

お礼

ありがとうございました。 初心者なものでわからない言葉もありましたが一つずつ確認しながら進めさせてもらいました。 今後もいろいろな場面で活用させていただきます。

関連するQ&A

  • MS Accessでオプショングループのトルグボタンを利用してリストボックスのデータを絞り込む

    MS Accessでシステムを作っています。 フォームにはリストボックスがあり。人名及びコードを選択するようになってます。 コード 名前 読み(非表示) 1111 山本 ヤマモト 2222  安藤 アンドウ など200人位あります。 リストボックスの下にはオプショングループを設置して"あ","か"・・ というトルグボタンを10個配置しました。 やりたい処理はオプショングループ内のトルグボタン"あ"を押した時にはリストボックスに表示されるデータは読み(非表示)の頭文字"あ~お"のデータを抽出したいです。 やれそうでやれなくて困っています。どなたかよいアドバイスお願いします。

  • ACCESS オプショングループの既定値の変更はどうしたらいいですか?

    Access2002で、フォームにオプショングループを作成し既定のオプションを設定しています(チェックボックスの既定値を設定しました)が、これを変更するには、どうしたらいいでしょうか? 既定のオプションを設定しない・何もチェックが入らない状態に変えたいです。

  • オプショングループから文字を入力

    フォームでオプショングループ(フレームの中にオプションボタンを2個)をつくり、選択肢から選んでコントロールソースで関連付けているテーブルに文字でデータを入力したいと考えています。 しかしフォームでオプション選択肢後、コントロールソースで関連付けているテーブルを見ても1,2の様な数字しか入力できません。 オプショングループから文字を入力を入力する方法を教えてください。

  • アクセス オプショングループで選択した条件を抽出

    先に条件を指定するフォームを作成します。 その条件の指定には、オプショングループを使います。 そのフォームに基づいたクエリを作成したいです。 例えば、国語・算数・英語 の中から一つを選択させるオプショングループを作成しておきます。 そこで選択された科目のみを抽出させるクエリを作りたいです。 (すでに氏名・科目・点数等入ったレコードソースはあります) クエリの抽出条件にはなんと入力すればよいのでしょうか。 どうぞよろしくお願いします。

  • アクセス2000で

    アクセス2000で、フォームでデザインモード状態にして、ツールボックスを表示。 それから、ビルドボタンをオンにして、コンボボックスを選択して、テーブル(フォームの)上にクリックすると別ウィンドウが出て、選択式か選べるようになりますが、 --ここで、キャンセルすると普通のコンボボックスになります。では、キャンセルしたあと、このボックスにもう一度ビルドで選択できるようにするにはどうすればようでしょう。(一度削除して、再度持ってくるのはなし) あと、フォームのデザイン状態でボタンなどに右クリックすると、ビルドが出てきますが、ここでコード、マクロ、式の三つありますが、いちど選択すると(例えば、マクロを選択)再度ビルド選択時にマクロ表示になります。 ここで、コード、式をだしたいんですけど・・出せますか?

  • AcsessでオプショングループをNull値に戻すには

    一つのチェックボックスをYesとNoに分けてオプショングループとしてフォームに配置したのですが、一度チェックを入れてしまうとNull値に戻す事が出来ません。簡単にクリアすることって出来ないのでしょうか?

  • ACCESSでメインフォーム上のオプショングループに設定したマクロでサブフォームに抽出結果をだしたい

    メインフォームとサブフォームがあり、 メインフォーム上でオプショングループ(年月日の月のみ) を作成しました。 例えばオプショングループの「1月」ボタンを クリックすると、サブフォームの1月のデータが すべて抽出されるようにしたいと思うのです。 普通のフォームにおけるマクロでは、 条件に[Forms]![メインフォーム名]![指定月(オプショングループの名前です)]=1 where条件式に[月]=1 とすると、きちんと実行されるのですが、 サブフォームにおいては、これではできないのです。 どこをどうすればよいのかご回答のほどよろしくお願いいたします。

  • ACCESSでコンボボックスからの入力でリスト外の追加をフォームを使っ

    ACCESSでコンボボックスからの入力でリスト外の追加をフォームを使って登録 ACCESSのフォームを使ってデータ入力を作成しています、"顧客名"をコンボボックスを使って選択するようにしていますが。 リスト外の新規顧客を入力する際には別の"顧客登録"フォームが開いて、顧客情報(読み仮名、顧客名、都道府県コード、所在地)を入力して、閉じると登録した"顧客名"がコンボボックスから選択できるようにしたいと思い、マクロを使用して(VBはよくわからないので) イベント→リスト外入力時→”顧客登録”フォームが開く 必要事項を入力し、閉じるボタンをクリック。 してみたのですが、コンボボックスのリストに先に入力した新規データが出てきません。 何が足りないのかご教授お願いいたします

  • エクセルVBAで、配列に値を代入する方法

    今、エクセルでデータベース関係のマクロを組んでるんですが、うまくデータの代入ができなくて困ってます。 詳しくは、フォームにあるコンボボックスの選択肢が何か選択されている時は、特定のセルに”○”が入るようにしたいんですが、コンボボックスが複数あるので、配列にして1度に代入したいと考えてるんですが、何かよい方法はありませんか? それともただ文法がおかしいだけでしょうか?できたら、データを代入する所だけでいいのでコードを書いていただけませんか? よろしくお願いします。

  • ACCESSで、フォームで抽出したものをレポートで印刷したいのですが・・・

    現在、フォームでオプショングループを作成し、そこで選択されたものがフォーム上に表示(抽出)されるマクロを設定しています。今度ここで表示されたものをレポートにて印刷するために、またマクロを作ったのですが、エラーとなっていまい、レポートも表示されません。 そのマクロは、 アクションを「値の代入」 アイテムを「[Reports]![成績表].[FilterOn]」 式を「True」 とし、 2行目に アクションを「値の代入」 アイテムを[Reports]![成績表].[Filter] 式を[Forms]![成績表].[Filter] としました。 これはあるテキストに載ってたとおりにしたのですができませんでした。 どのようにすればよいのか教えてください。よろしくお願いします。