• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:accessのコンボボックスについて)

ACCESSのコンボボックスについて

このQ&Aのポイント
  • 商品番号をコンボボックスで指定すると、商品名が別のテキストボックスに自動で表示される方法について質問があります。
  • 登録されていない商品の場合には、その場で商品番号と商品名を登録して商品情報テーブルに反映させたいです。
  • コンボボックスで選択する際にはID順ではなく、商品番号の昇順で並び替えたいと思っています。ACCESSのバージョンは2002です。

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

>以上をふまえた形でご指導いただけたらと思います。 下のコードでも解析してください コンボのあるフォームのコード Private Sub 品名コード_NotInList(NewData As String, Response As Integer) Dim NewCategory As Integer '入力されたものを新規登録するか確認 NewCategory = MsgBox("新規の商品として登録しますか?", vbYesNo + vbQuestion + vbDefaultButton1, "新規の商品") If NewCategory = vbYes Then '入力されたものを再クエリに備えて削除 DoCmd.RunCommand acCmdUndo End If DoCmd.OpenForm "商品", acNormal, , , , acDialog, NewData Response = acDataErrAdded End Sub マスタへの入力フォームのコード Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acNewRec Me.品名 = Me.OpenArgs End Sub [商品マスタ](品名コード、品名、単価) [売上テーブル](売上ID、売上日、発送NO、数量、品名コード、売上時単価) 売り上げテーブル入力フォームには品名を表示して品名コードを入力するコンボが置かれています

shimayu
質問者

お礼

頑張って調べながらやってみたところ 無事に出来ました!とても助かりました。ありがとうございました。

その他の回答 (1)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

>商品情報テーブル のような(マスタ)テーブルを 他のテーブル(この場合受注伝票)から参照している場合 受注伝票に入力する前に商品情報テーブルへの登録を済ませておく必要があります これはデータベースの基本的な仕組みですから変えることは出来ません よく採られるインタフェースはコンボに登録されていないものを入力したときに 発生するリスト外入力イベントで商品情報への入力フォームを表示するというものです 商品番号がユニーク(重複なし)なものなら商品IDはいらないのでは

shimayu
質問者

補足

なるほど、コンボからの新規はできないのですね。 その点は了解しました。コンボからの新規は考えなくてかまいません。 その都度、商品情報テーブルを更新していくことにします。 今までIDはオートナンバーでと言う先入観があって 商品IDと商品番号を別にしていました。 商品情報テーブルの商品IDを削除し、 商品番号をキーに設定しました。 以上をふまえた形でご指導いただけたらと思います。

関連するQ&A