ボンジュール・マドモアゼル

本サイトの情報は自己責任にてご利用下さい。

[Microsoft Access] DAO, ADO ファイルの共有ロック数が制限を超えています (Error 3052)。回避方法

 
3052 共有ロック数の制限オーバーは、まめにコミットすることで防げるが、
このやり方は、単一のSQLコマンドでエラーが出るような場合には使えない。
この場合、ひとつ考えられる対処は、データベース(または接続)を排他モードで開いておくことである。以下は、そのサンプルコード。
Public Sub AlterTable()


Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection

Dim cnnStr As String
cnnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=D:Test.mdb;"

Dim Sql As String
Sql = "ALTER TABLE CUSTOMER ALTER COLUMN CUSTOMER_ID TEXT(20);"

With cnn
.ConnectionString = cnnStr
.Mode = adModeShareExclusive
.Open
.Execute Sql, , adCmdText + adExecuteNoRecords
.Close
End With

End Sub


参考)
http://support.microsoft.com/kb/881843/ja
データベースを排他モードで開く方法
文書番号: 881843
<<DAO.Database DAOデータベースがOpen状態かどうかを判定する方法 | ホーム | DAO TableDefs.Refresh, QueryDefs.Refresh を実行しても最新状態が反映されない。>>

コメント

コメントの投稿

管理者にだけ表示を許可する

画像の文字を半角数字で下記ボックスに記入ください。
文字が読みにくい場合はブラウザの更新をすると新しい文字列が表示されます。