Page 541 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼値の重複について しー 04/3/12(金) 1:49 ─────────────────────────────────────── ■題名 : 値の重複について ■名前 : しー ■日付 : 04/3/12(金) 1:49 -------------------------------------------------------------------------
値の重複について質問させてください。 db1.mdb a テーブル Name テキスト型フィールド 値の重複有り Data 数値型フィールド 値の重複無し 上記のmdbがあったとします。 db2.mdb db3.mdb にdb1.mdbのaテーブルのリンクテーブルを作成します。 db2.mdb と db3.mdb のモジュールに Function b() On Error GoTo Err Dim DB As DAO.Database Dim RS As DAO.Recordset Dim X As Integer 1: DoEvents DBEngine.BeginTrans Set DB = CurrentDb Set RS = DB.OpenRecordset("a", dbOpenDynaset) RS.Sort = "Data DESC" Set RS = RS.OpenRecordset() If RS.EOF = True Then X = 0 Else X = RS!Data + 1 End If RS.AddNew RS!Name = "db2" 'db3.mdbには "db3" と記載 RS!Data = X RS.Update RS.Close DB.Close DBEngine.CommitTrans GoTo 1 Err: DBEngine.Rollback GoTo 1 End Function と作成します。 db3.mdb の RS!Name には "db3" と設定します。 上記のモジュールを作成後に db2.mdb と db3.mdb を実行した場合に RS.Updateの場所で値が重複してしまいエラーになってしまいます。 これはトランザクションの使い方が間違っているのでしょうか? どなたかわかる方ご教授お願いします。 |