ウィングのHPへようこそ 本文へジャンプ
サンプル一覧へ戻る

コンボボックスでデータが無いときに登録するVBA


コンボボックスでテーブルの内容を表示し、そのデータが無かった時に、そのデータをマスタに登録します。
<事例>
下記のような伝票登録フォームがあります。
この中の摘要は「摘要マスタ」の値から表示しています。
ここに摘要マスタにない、「摘要2」という摘要を入力します。
そうすると、下記の確認画面が表示されます。
ここで「はい(Y)」をクリックすると、「摘要2」が摘要マスタに登録され、なおかつ、この伝票ファイルにも摘要2が登録されます。
登録された後の摘要マスタは次の通り
<ソース例> ※ このサンプルはDAOを使用しています。

Private Sub 摘要_Enter()
  Me![摘要].LimitToList = True
End Sub

Private Sub 摘要_NotInList(NewData As String, Response As Integer)
  Dim MSG As String
  Dim MYDB As DATABASE
  Dim MYSET As Recordset
  Dim SQL As String
  Dim BANGO As Long

  MSG = "新しい内容です。この内容を登録しますか?"
  If MsgBox(MSG, vbYesNo) = vbYes Then

    BANGO = Nz(DMax("コード", "摘要マスタ")) + 1
    Set MYDB = CurrentDb()
    Set MYSET = MYDB.OpenRecordset("摘要マスタ")
    MYSET.AddNew
    MYSET!コード = BANGO
    MYSET!摘要 = NewData
    MYSET.Update
    MYSET.Close

    Response = acDataErrAdded
  Else
    Me![摘要].LimitToList = False
    Response = acDataErrContinue

  End If
End Sub

<サンプルをダウンロードできます>
これを使用したサンプル(sample011.mdb)をダウンロードできます。(形式はアクセス2000)
ダウンロード

サンプル一覧へ戻る
 

Copyright(C) 2006 Wing