'各コントロールの入力状態をチェックする関数。
'全てのコントロールの値が適切であれば True、そうでなければ False を返す
Private Function InputCheck() As Boolean
On Error GoTo Err_InputCheck
InputCheck = False
'[txtID]のチェック(オートナンバー型の主キー[ID]と照応)
With Me![txtID]
If IsNull(.Value) = True Then
MsgBox "[ID]が入力されていません。", _
vbExclamation, _
"入力エラー"
.SetFocus
Exit Function
End If
If IsNumeric(.Value) = False Then
MsgBox "数値データに変換できない文字列が[ID]に入力されています。", _
vbExclamation, _
"入力エラー"
.SetFocus
Exit Function
End If
If DCount("*", SourceTableName, "[ID]=" & CLng(.Value)) = 0 Then
MsgBox "テーブル[" & SourceTableName & "]上に、[ID]の値が" & CLng(.Value) & "であるレコードは存在しません。", _
vbExclamation, _
"入力エラー"
.SetFocus
Exit Function
End If
End With
'[c1]のチェック(数値型フィールド[F1]と照応)
With Me![c1]
If Nz(.Value, "") <> "" Then
If IsNumeric(.Value) = False Then
MsgBox "数値データに変換できない文字列が[F1]に入力されています。", _
vbExclamation, _
"入力エラー"
.SetFocus
Exit Function
End If
End If
End With
'[c2]のチェック(通貨型フィールド[F2]と照応)
With Me![c2]
If Nz(.Value, "") <> "" Then
If IsNumeric(.Value) = False Then
MsgBox "数値データに変換できない文字列が[F2]に入力されています。", _
vbExclamation, _
"入力エラー"
.SetFocus
Exit Function
End If
End If
End With
'[c3]のチェック(日付/時刻型フィールド[F3]と照応)
With Me![c3]
If Nz(.Value, "") <> "" Then
If IsDate(.Value) = False Then
MsgBox "日時データに変換できない値が[F3]に入力されています。", _
vbExclamation, _
"入力エラー"
.SetFocus
Exit Function
End If
End If
End With
InputCheck = True
'終了処理
Exit_InputCheck:
Exit Function
'エラー時処理
Err_InputCheck:
InputCheck = False
Dim strErrTitle As String
Dim strErrMsg As String
strErrTitle = "実行時エラー (" & Me.Name & ".InputCheck)"
strErrMsg = Err.Number & ": " & Err.Description
Debug.Print strErrTitle
Debug.Print strErrMsg
MsgBox strErrMsg, vbCritical, strErrTitle
End Function
通報 ...