2012-05-09 8 views
2

Access 2010を使用すると、WinXP。私はエラーを生成しませんもtestが別のユーザーによってロックされている場合の手順を実行し、ロックセットに挿入するときにレコードセットにエラーが表示されない

Sub testUpdate() 
Dim rs As Recordset 
Dim db As DAO.Database 

Set db = CurrentDb 
Set rs = db.OpenRecordset("test") 

With rs 
.AddNew 
!field1 = "abc" 
!field2 = "def" 
.Update 
End With 

End Sub 

とテーブルtestを更新しようとしている、と(結構です)テーブルを更新しませんが、。私は、SQLの挿入ステートメントと同じ操作を行う場合、たとえば。

insert into test (field1,field2) values ("abc","def")

は、私は、インサートが違反をロックするため、失敗した私に言って、エラーメッセージが表示されます。どうすれば recordset.updateに同様のエラーを生成させてから処理できるのですか?レコードセットでは dbFailOnErrorと同等のものはありません。

+0

テストはどのようにロックされていますか?たとえば、ユーザーがデザインビューでテーブルを取得しているか、排他的に開いているのか、レコードロックだけを開いていますか? – Fionnuala

答えて

1

私はあなたがエラーの例をトリガーにしたい場合は、レコードセットの種類とロックの種類を設定を見て必要があると思う:

Currentdb.OpenRecordset("test", dbOpenDynaset, dbPessimistic,) 

あなたが働くものを見つけるまで、あなたはこれらのさまざまなバリエーションを試すことができ、ヘルプに組み込まれたアクセスには、利用可能なすべてのオプションが一覧表示されます。

関連する問題