|
こんにちは、水無月と申します。
下記についてご教授宜しくお願いします。
フォームに「HEAD」「START」「END」「BANGO」というテキストボックスを設置して「TOUROKU」ボタンをクリックした際に「T_TP」というテーブルにレコードを追加するイベントを行います。
例えば、HEADに「A」、STARTに「10050」、ENDに「10100」、BANGOに「60」とするとA10050〜A10100までの連続番号のTPNOとその全レコードのBANGOに60が登録されます。
この次にA10000〜A10100までを登録しようとした場合、現在はテーブルのインデックスが重複なしになっているため、重複が出たときにエラーが出ます。でもA10000〜A10049まではノーチェックで登録されてしまいます。そうではなくて、登録しようとしたNOが1つでも重複している場合、1つも登録することなく元のフォームに戻り入力し直すようにしたいのです。
でもどうすればいいのか分からず困っています。どうか宜しくお願いします。
(ちなみにHEADはつく場合と空白の場合があります)
Private Sub cmd_TOROKU_Click()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim i As Long
Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.Open "T_TP", cn, adOpenKeyset, adLockOptimistic
For i = CLng(Me!START) To CLng(Me!END)
If IsNull(Me!HEAD) Then
rs.AddNew
rs!TPNO = CStr(i)
rs!BANGO = Me!BANGO
rs.Update
Else
rs.AddNew
rs!TPNO = Me!HEAD + CStr(i)
rs!BANGO = Me!BANGO
rs.Update
End If
Next i
If IsNull(Me!HEAD) Then
MsgBox ("No." & Me!START & "から" & Me!END & "まで登録しました")
Else
MsgBox ("No." & Me!HEAD + Me!START & "から" & Me!HEAD + Me!END & "まで登録しました")
End If
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
|
|