---------------------------------------------------------------------------
Sub コンボボックス_NotInList (NewData As String, Response As Integer)
Dim Result
Dim Msg As String
Dim CR As String: CR = Chr$(13)
'ユーザが NewData を消した場合
If NewData = "" Then Exit Sub
'新しいデータを追加するかをユーザに尋ねる
Msg = "'" & NewData & "' はリストの中に存在しません。" & CR & CR
Msg = Msg & "追加しますか?"
If MsgBox(Msg, 32 + 4) = 6 Then
'ユーザが [はい (Y)] を選択したら、追加用の [社員] フォームを開きます。
DoCmd フォームを開く "社員", , , , A_ADD, A_DIALOG, NewData
End If
'新しいデータを追加したかどうかを確認します。
Result = DLookup("[社員コード]", "社員", "[社員コード]=" & NewData & "")
If IsNull(Result) Then
'追加していない時は、もう一度入力を促します。
Response = DATA_ERRCONTINUE
MsgBox "再入力してください。"
Else
'リストに新しいデータを追加します。
Response = DATA_ERRADDED
End If
End Sub
---------------------------------------------------------------------------
--------------------------------------------------------------------------
Sub Form_Load()
If IsNull(Me.OpenArgs) = False Then
'このフォームを開いた [フォーム 1] フォームから、
'[社員コード](NewDate) を受け取ります。
Me![社員コード] = Me.OpenArgs
End If
End Sub
--------------------------------------------------------------------------